遇到的问题:
不使用阈值分割,更改特定颜色区域的颜色,例如 -> 红色数据点替换成蓝色。
解决办法:
由于数据图片不方便展示,所以随便找了张图做演示。
将图片的蓝色背景改为其他颜色。
逐一遍历每个像素点,设定像素筛选条件,例如背景是蓝色:
img[i,j,0] > 200 # b通道值高,筛选过后直接替换像素颜色。在matlab中的实现方法:
传送门:(1条消息) matlab的图像区域颜色替换填充办法_魚香肉丝盖饭的博客-CSDN博客_matlab怎么给图像填充颜色

import cv2 as cv
img = cv.imread(r'.\maple.png')
cv.imshow('maple', img)
h, w, ch = img.shape # 图像的高,宽,通道数
color = [238, 104, 123] # 新颜色,bgr
for i in range(h):
for j in range(w):
if img[i, j, 0] >= 200: # 如果b通道值大于200,说明找到了目标背景色,那么就给bgr三通道赋新值
img[i, j, 0] = color[0]
img[i, j, 1] = color[1]
img[i, j, 2] = color[2]
cv.imshow('newmaple', img)
cv.waitKey(0)
Result:

306

被折叠的 条评论
为什么被折叠?



