我正在计算灰度图像的直方图,我想将灰度像素的范围转换为黑色。我使用以下代码来检索直方图。
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()
例如,我想将值为50的所有像素转换为黑色。
答案 0 :(得分:1)
也许图像阈值是你所追求的......
如果像素值大于阈值,则为其分配一个值(可能为白色),否则为其分配另一个值(可能为黑色)。
cv2.threshold(img,127,255,cv2.THRESH_BINARY)
上面的代码是用C ++编写的,但很容易转换。第一个参数是有问题的图像,第二个是阈值,第三个是如果超过阈值则分配任何像素值的内容,第四个是有多个的阈值类型:
进一步阅读:see here
答案 1 :(得分:0)
范围内的openCV就是您所需要的。你可以在范围内使用来制作面具。
http://docs.opencv.org/3.3.0/d2/de8/group__core__array.html#ga48af0ab51e36436c5d04340e036ce981/
您可以在以下程序中执行此操作
http:/foo.bar.com