我要做什么:
如果阈值图像中的像素等于黑色,则在实际图像中减小该像素的亮度,如果阈值图像中的其白色增大实际图像中的亮度
以下是我目前拥有的代码:
img = cv2.imread('1.bmp')
img = cv2.GaussianBlur(img,(5,5),0)
""" Take the image and slipt it into the HSV colour spectrem """
h,s,v= cv2.split(cv2.cvtColor(img, cv2.COLOR_BGR2HSV))
""" Equalise the histogram for the V value """
eq_V = cv2.equalizeHist(v)
""" Merge all the values back into one image """
eq_image = cv2.cvtColor(cv2.merge([h, s, eq_V]), cv2.COLOR_HSV2BGR)
ret1,th1 = cv2.threshold(eq_image,127,255,cv2.THRESH_BINARY)
[rows, columns, channels] = img.shape
blacks = np.zeros((rows,columns,channels))
whites = np.zeros((rows,columns,channels))
for row in range(rows):
for column in range(columns):
if th1[row,column].all() == 0:
""" Equalise the v value """
blacks[row,column] = v[row,column]
else:
""" Equalise the v value """
whites[row,column] = v[row,column]
addTogether = cv2.add(blacks,whites)
cv2.imshow("frame", addTogether.astype(np.uint8))
cv2.waitKey(0)
cv2.destroyAllWindows()
我的问题
我正在努力的部分是上面提到的步骤4。我目前正在基于黑白和黑白构建图像,然后将这些图像加在一起以回到原始图像状态。
我似乎无法做/想出的是如何调整图像的hsv的v值,然后如何将整个图像与新的v值一起合并回色调和饱和度值。< / p>
最近一次尝试的图像