如何修改选中像素的颜色?用OpenCV将选定区域改为黑色的方法
修改选中像素颜色为黑色的实现方案
针对颜色阈值选中区域改黑
你当前的代码目前是通过HSV阈值筛选出蓝色区域并保留,其余区域置黑。如果需要将筛选出的蓝色区域改为黑色,直接对掩码对应位置赋值即可,无需使用bitwise_and操作:
在得到erosion二值掩码生成后,添加一行赋值代码:
# erosion中值为255的位置就是你选中的颜色区域,直接赋值为黑色 img[erosion == 255] = [0, 0, 0]
修改后的完整可运行代码如下:
import cv2 import numpy as np img = cv2.imread("colors.jpg") height,width = 720,720 img = cv2.resize(img,(width,height)) hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) lower_range = np.array([100,50,50]) upper_range = np.array([150,255,255]) kernel = np.ones((5,5),np.uint8) mask = cv2.inRange(hsv, lower_range, upper_range) erosion = cv2.erode(mask,kernel,iterations = 1) # 新增:选中区域置黑 img[erosion == 255] = [0,0,0] cv2.imshow("result",img) cv2.waitKey(0) # 注意原代码此处缺少括号,补全后才能正常销毁窗口 cv2.destroyAllWindows()
针对手动框选矩形区域改黑
如果你需要自定义框选一个矩形区域改为黑色,直接对图像ROI赋值即可,坐标规则为img[y轴起始:y轴结束, x轴起始:x轴结束],示例:
# 示例:将y坐标200到400,x坐标100到300的矩形区域置黑 img[200:400, 100:300] = [0,0,0]
内容的提问来源于stack exchange,提问作者Lynoix
相关产品推荐
相关产品推荐

