簡體   English   中英

錯誤:(-215) _src.type() == CV_8UC1 在函數 equalizeHist 中嘗試均衡 float64 圖像時

[英]error: (-215) _src.type() == CV_8UC1 in function equalizeHist when trying to equalize a float64 image

我正在嘗試像這樣均衡 1 個單通道圖像:

img = cv2.equalizeHist(img)

但由於它是一個 float64 img,我收到以下錯誤:

錯誤:(-215) _src.type() == CV_8UC1 在函數 equalizeHist

我該怎么做?

所以基本上直方圖均衡適用於灰度圖像。 所以如果你想在彩色圖像上做直方圖均衡,你可以使用這個代碼。

R, G, B = cv2.split(img)

output1_R = cv2.equalizeHist(R)
output1_G = cv2.equalizeHist(G)
output1_B = cv2.equalizeHist(B)

equ = cv2.merge((output1_R, output1_G, output1_B))

函數equalizeHist是圖像的直方圖均衡化,僅針對CV_8UC1類型實現,該類型是單通道8位無符號整數類型。

要將圖像轉換為這種類型,您可以將函數convertTo與目標類型一起使用(通道數必須相同)。

確保源圖像具有正確的值范圍,通常浮點圖像被解釋為 0 = 黑色和 1 = 白色,灰度范圍介於兩者之間,而整數圖像被解釋為 0 = 黑色和最大值 = 白色(其中無符號 8 位類型為 255)。 因此,您通常必須將源圖像乘以 255 以適應范圍。 函數convertTo有一個參數可以在轉換期間縮放你的值,與手動縮放相比,它可以提高速度。

您也可以使用.astype (numpy.uint8)。

初始化圖像變量時,不要忘記標志,它為我解決了它。

img = cv2.imread("my_image.png", 0)

我使用 0 作為標志,因為我正在使用灰度圖像。

讀取圖像並將其轉換為灰色后。 利用
img = np.float32(img)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM