亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在位圖上反轉黑白不起作用

在位圖上反轉黑白不起作用

www說 2023-07-19 10:14:30
我用 OpenCV 進行一些圖像處理。我想反轉這個位圖(黑到白,白到黑),但我遇到了一些問題。這樣做后我得到了這個位圖:// to greyImgproc.cvtColor(mat, mat, Imgproc.COLOR_RGB2GRAY, 4);Imgproc.adaptiveThreshold(mat, mat, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY_INV, 15, 4);Utils.matToBitmap(mat, bitmapCopy);這是反轉后的結果。這是我的代碼:    // to grey    Imgproc.cvtColor(mat, mat, Imgproc.COLOR_RGB2GRAY, 4);    Imgproc.adaptiveThreshold(mat, mat, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY_INV, 15, 4);    Utils.matToBitmap(mat, bitmapCopy);    for(int y = 0; y < bitmapCopy.getHeight(); y++){        for(int x = 0; x < bitmapCopy.getWidth(); x++){            int pixel = bitmapCopy.getPixel(x,y);            if (pixel == Color.WHITE){                bitmapCopy.setPixel(x, y, Color.BLACK);            } else {                bitmapCopy.setPixel(x, y, Color.WHITE);            }        }    }第一個圖像中的白線應該反轉為黑線,但它不起作用。我用 Adobe Photoshop 檢查了該文件。當我指向圖像的白色區域時,它顯示顏色是白色(#FFFFFF)。我缺少什么?有人可以啟發我嗎?
查看完整描述

2 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

您可以使用按位不反轉圖像。一般來說,您希望避免迭代每個像素,因為它非常慢。

原來的

http://img3.sycdn.imooc.com/64b7485f00014ae225600961.jpg

結果

http://img2.sycdn.imooc.com/64b7486f00016c4225600963.jpg

這里有兩種反轉圖像的方法。使用內置cv2.bitwise_not()函數或僅減去 255。它是在 Python 中實現的,但同樣的想法也可以在 Java 中使用。


import cv2


image = cv2.imread('1.png')

result = 255 - image

alternative_result = cv2.bitwise_not(image)


cv2.imshow('image', image)

cv2.imshow('result', result)

cv2.imshow('alternative_result', alternative_result)

cv2.waitKey(0)


查看完整回答
反對 回復 2023-07-19
?
青春有我

TA貢獻1784條經驗 獲得超8個贊

您的輸入是灰度圖像。所以只有純白色才會變成黑色,其他一切都會變成白色。


我對 opencv 不熟悉,所以這可能行不通。但值得一試。


int invertedPixel = (0xFFFFFF - pixel) | 0xFF000000;

bitmapCopy.setPixel(x,y, invertedPixel);


查看完整回答
反對 回復 2023-07-19
  • 2 回答
  • 0 關注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號