将所有灰度像素值转换为黑色

时间:2017-10-05 07:54:42

标签: python opencv

我正在计算灰度图像的直方图,我想将灰度像素的范围转换为黑色。我使用以下代码来检索直方图。

image = cv2.imread('./images/test/image_5352.jpg')
cv2.imshow("image", image)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow("gray", gray)

hist = cv2.calcHist([gray], [0], None, [256], [0, 256])
plt.figure()
plt.title("Grayscale Histogram")
plt.xlabel("Bins")
plt.ylabel("# of Pixels")
plt.plot(hist)
plt.xlim([0, 256])
key = cv2.waitKey(0)
cv2.destroyAllWindows()

Histogram of the image

例如,我想将值为50的所有像素转换为黑色。

2 个答案:

答案 0 :(得分:1)

也许图像阈值是你所追求的......

  

如果像素值大于阈值,则为其分配一个值(可能为白色),否则为其分配另一个值(可能为黑色)。

cv2.threshold(img,127,255,cv2.THRESH_BINARY)

上面的代码是用C ++编写的,但很容易转换。第一个参数是有问题的图像,第二个是阈值,第三个是如果超过阈值则分配任何像素值的内容,第四个是有多个的阈值类型:

enter image description here

进一步阅读:see here

答案 1 :(得分:0)

范围内的openCV就是您所需要的。你可以在范围内使用来制作面具。

http://docs.opencv.org/3.3.0/d2/de8/group__core__array.html#ga48af0ab51e36436c5d04340e036ce981/

您可以在以下程序中执行此操作

http:/foo.bar.com