python 在指定图片指定范围内 匹配多个传入的像素点 加上偏色 101010 查找
时间: 2024-03-05 10:55:17 浏览: 55
python使用PIL模块获取图片像素点的方法
好的,您的需求是在指定图片的指定范围内匹配多个传入的像素点,并对匹配到的像素点加上偏色 [10, 10, 10]。下面是一个使用 Python 和 OpenCV 库实现的示例代码:
```python
import cv2
import numpy as np
# 读取指定的图片
img = cv2.imread('image.jpg')
# 指定搜索范围
x, y, w, h = 100, 100, 200, 200
search_range = img[y:y+h, x:x+w]
# 定义多个目标像素点的颜色和位置信息
target_colors = np.array([[255, 0, 0], [0, 255, 0], [0, 0, 255]]) # 红、绿、蓝
target_points = np.array([[50, 50], [100, 100], [150, 150], [200, 200]])
# 在搜索范围内搜索目标像素点
for i in range(len(target_colors)):
mask = cv2.inRange(search_range, target_colors[i], target_colors[i])
points = cv2.findNonZero(mask)
# 对于每个找到的像素点,加上指定的偏色
for p in points:
for tp in target_points:
if (tp == p).all():
img[y+p[0][1], x+p[0][0]] += np.array([10, 10, 10]) # 加上偏色
# 显示结果
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们首先读取指定的图片。接着,我们使用 `x, y, w, h` 四个变量来指定搜索范围,也就是要在图片的 `(x, y)` 到 `(x+w, y+h)` 这个矩形区域内搜索目标像素点。然后,我们使用传入的目标像素点的颜色和位置信息,在搜索范围内使用 `cv2.inRange()` 函数搜索目标像素点,这里我们使用 `cv2.findNonZero()` 函数找到像素点的位置。最后,我们对于每个找到的像素点,使用 `+=` 运算符加上指定的偏色 [10, 10, 10]。
您可以根据实际需求来修改代码中的搜索范围、目标像素点的颜色和位置信息,以及偏色的值。另外,您需要将示例代码中的 `'image.jpg'` 替换成您自己的图片路径。
阅读全文