请给出一段完整的python程序,要求能够在图像中精准的选取三个同样颜色的点,选定后对图像进行处理,将图像中其他颜色的所有点的颜色更改为黑色。
时间: 2023-06-23 21:07:56 浏览: 63
以下是一个实现该功能的Python程序:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg')
# 定义颜色值
color = []
# 鼠标回调函数,获取颜色值
def get_color(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONUP:
color.append(img[y,x].tolist())
# 创建窗口并设置鼠标回调函数
cv2.namedWindow('image')
cv2.setMouseCallback('image', get_color)
# 显示图像并等待选择颜色
cv2.imshow('image', img)
cv2.waitKey(0)
# 将颜色值转为numpy数组
color = np.array(color)
# 将图像中不是选中颜色的点全部变成黑色
for i in range(img.shape[0]):
for j in range(img.shape[1]):
if not np.array_equal(img[i,j], color):
img[i,j] = [0, 0, 0]
# 显示处理后的图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行程序后,将会弹出一张图像供你选择三个同样颜色的点。选择完毕后,程序将会将图像中不是选中颜色的点全部变成黑色,并显示处理后的图像。
阅读全文