我正在處理需要處理的影像。但是,只有這些影像的特定區域是有意義的,因此對于每張影像,我都有一個相應的蒙版(可以是任何形狀,不是邊界框或任何特定的)。我想做直方圖均衡,但只在“蒙面表面”上,因為我對影像的其余部分不感興趣。

以下是面具:
mask = cv2.imread('mask.jpg', 0)

我只想對花進行直方圖均衡。
將像素為白色 (255) 的坐標存盤在mask:
coord = np.where(mask == 255)
將所有像素強度存盤在以下坐標中gray:
pixels = gray[coord]
對這些像素強度執行直方圖均衡:
equalized_pixels = cv2.equalizeHist(pixels)
gray創建一個名為的副本gray2。將均衡的強度放在相同的坐標中:
gray2 = gray.copy()
for i, C in enumerate(zip(coord[0], coord[1])):
gray2[C[0], C[1]] = equalized_pixels[i][0]
cv2.imshow('Selective equalization', gray2)

比較:

注意:此程序可以擴展到直方圖均衡或 CLAHE、ON RGB 或灰度影像。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/483307.html
標籤:Python opencv 图像处理 直方图 直方图均衡
上一篇:從邊界框獲取皮膚的二進制掩碼
