如何根据像素的RGB比过滤图像?

问题描述 投票:1回答:1

如何使用python基于图像中像素的RGB比创建滤色器?

我是python的初学者,在为图像创建颜色过滤时遇到一些问题。

我正在尝试使用opencv(python)检测RGB图像中的蓝色物体。我可以过滤掉图像中的大多数蓝色物体,但是我的代码无法过滤低强度的蓝色物体。我的代码:

#b=img1[:,:,0]
#img1[:,:,1]=0
#img1[:,:,2]=0
#b[b<220]=0

ROI中有一些像素由于光散射而具有更高的强度;因此,当我降低阈值以将低强度像素保持在ROI中时,许多其他强度较高的不需要像素会保留在我的输出图像中。因此,我正在尝试使用这些像素的RGB比率,但是我的代码不起作用!感谢您在这方面的帮助。谢谢。

import numpy as np
import cv2
img1 =cv2.imread('IMG_1217.jpg',1)
img11=cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)
b=img11[:,:,0]
r=img11[:,:,1]
g=img11[:,:,2]
a=np.divide(b,g)
c=np.divide(b,r)
a[a>1.9]=1
c[c>1.3]=1
img11=cv2.merge([b,a,c])
cv2.imshow('img11',img11)
python
1个回答
0
投票

如果您能以您所说的“不需要的像素”显示图片,那就更好了。是因为像素分散还是结果不正确?

顺便说一句,您的图像已从BGR转换为RGB,B通道应该是第三个通道,而您在代码中选择了第一个通道。

© www.soinside.com 2019 - 2024. All rights reserved.