opencv-python之8bit圖像的讀取與存儲

前言:

        最近忙於cityscapes數據集的數據預處理,發現,其label圖集都是基於8bit的單通道數據。之前,在做數據處理的時候,並沒有注意到這一點,到時生成的label圖集在與預測的結果圖集做miou計算時出現錯誤。

代碼實現:

from cv2 import cv2 as cv2
import numpy as np

# img = np.zeros((1024,2048),np.int8)  # 創建一個8bit的數據
# img = cv2.imwrite("./1.png",img)     # 存儲後其圖像依然爲8bit的圖像

# img = cv2.imread("./frankfurt_000000_000294_gtFine_labelIds.png",0)  # 以單通道的格式打開
# img = cv2.imwrite("./2.png",img)                                     # 存儲後依然是單通道

img1 = cv2.imread("./frankfurt_000000_000294_gtFine_labelIds.png",0)
img2 = cv2.imread("./2.png",0)
# print(img1.shape[0])  # hight
for i in range(img1.shape[0]):
    for j in range(img1.shape[1]):
        if img1[i][j] != img2[i][j]:
            print("bug!")
        else:
            print("The point of "+str(i)+"_"+str(j)+" row:"+"is ok!")     # 比對兩幅圖的像素值一致

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章