我认为您可以通过两种方式在这里调整对比度:
1) Histogram Equalization :
但是当我用你的图片尝试这个时,结果并不像你预期的那样。在下面检查:
2) 阈值:
在这里,我将输入的每个像素值与任意值(我采用127)进行了比较。以下是在 opencv 中具有内置功能的逻辑。 But remember, output is Binary image, not grayscale as you did.
If (input pixel value >= 127):
ouput pixel value = 255
else:
output pixel value = 0
下面是我得到的结果:
为此,您可以使用 Threshold function 或 compare function
3) 如果你必须得到灰度图像作为输出,请执行以下操作:
(代码在 OpenCV-Python 中,但是对于每个函数,对应的 C 函数在 opencv.itsezez.com 中可用)
for each pixel in image:
if pixel value >= 127: add 'x' to pixel value.
else : subtract 'x' from pixel value.
('x' 是一个任意值。)因此明暗像素之间的差异会增加。
img = cv2.imread('brain.jpg',0)
bigmask = cv2.compare(img,np.uint8([127]),cv2.CMP_GE)
smallmask = cv2.bitwise_not(bigmask)
x = np.uint8([90])
big = cv2.add(img,x,mask = bigmask)
small = cv2.subtract(img,x,mask = smallmask)
res = cv2.add(big,small)
下面是得到的结果: