![](/img/trans.png)
[英]Changing of pixel values after writing the same image using imwrite opencv python function
[英]Image pixels values after imwrite and/or imread in python opencv
我正在嘗試使用圖像編輯器(例如MS paint或paint.net)在圖像上繪制具有固定顏色(例如RGB = 255,0,0的純紅色)的邊界框,然后在python中加載圖像(例如opencv imread),方法是查找具有此RGB值(或BGR值在0、0、255中)的像素,以便我可以創建用於對象檢測的標簽。
但是,保存並加載圖像后,我看不到任何具有此類RGB或BGR值的像素。 相反,這些像素在可能與我指定的值相差甚遠的值范圍內。
我還嘗試將以下內容用於實驗目的:
cv2.rectangle(img_arr, (10, 10), (60, 60), (0, 0, 255), thickness=1)
在此語句之后,我確實看到了具有值(0、0、255)的像素。 但是,當我運行cv2.imwrite然后像這樣運行cv2.imread時:
cv2.imwrite(full_path_name, img_arr)
然后:
img_arr = cv2.imread(full_path_name)
我在這個新的img_arr中注意到,這些BGR值不再有任何像素。 問題是什么?
回到標記圖像以進行對象檢測的原始問題,我不想使用任何標記工具,因為大多數工具都在檢測鼠標移動,但是,我的對象檢測任務是檢測文本區域,這需要非常准確的邊框這樣圖像分割和字符識別的后期階段就不會太難。 因此,我更喜歡采用靜態方式,以便可以調整邊界框以使其准確甚至可以進行檢查。 完成后,我們將創建標簽。 這個想法甚至行得通嗎?
非常感謝你!
將JPEG
用作圖像處理任務的中間存儲時,請務必小心,因為它是有損格式,並且在以后讀回它們時,值可能會有所不同。
考慮為中間存儲使用無損PNG
格式。 或使用NetPBM PGM
(灰度)或PPM
(彩色)格式來讀取和寫入特別簡單的格式-盡管請注意,它不能保留元數據(例如版權或EXIF數據)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.