用opencv怎么准确识别摄像头捕获视屏流中的特定颜色块

我根据摄像头采集到得图像转换到hsv空间后,设定阈值识别黑色,//识别黑色Scalarhsv_min=newScalar(0,0,0);Scalarhsv_max=new... 我根据摄像头采集到得图像转换到hsv空间后,设定阈值识别黑色,
//识别黑色
Scalar hsv_min = new Scalar(0,0,0);
Scalar hsv_max = new Scalar(255,255,30);
Core.inRange(dst, hsv_min, hsv_max, hsv_mask);
,可是查看 hsv_mask的结果很不理想,一完整块的黑色部分可能只识别很小的部分,是不是还要做什么处理呀,for help,我是菜鸟级的,希望最好能有代码
我是要在android下实现,故上面是android下的代码
展开
 我来答
bhtzu
2013-02-25 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4247万
展开全部
对opencv不怎么熟,求助到这,以下意见仅供参考。
Core.inRange(dst, hsv_min, hsv_max, hsv_mask);这个可能有问题
Scalar是一个结构体,而标准inRange的定义是这样的:
inRange 检查元素的取值范围是否在另两个矩阵的元素取值之间,返回验证矩阵
这个应该要求的是二维特性,你这样计算恐怕会有问题,不如自己写一个类似inRange的函数,函数中直接判断这几个条件
core.val[0]>min.val[0]
core.val[1]>min.val[1]
core.val[2]>min.val[2]
然后小于max,这样就可以了吧。仅供参考!
追问
试试如下代码:  for(int i=0;i0&&val[2]<10){
val[0] = 0; val[1] = 0; val[2] = 0; }else {
val[0] = 1; val[1] = 1; val[2] = 1;}
hsv_mask.put(i, j, val);
}}
可是结果不对,不知道android下面怎么用呀?
追答
确实不熟啊,这个还是帮你查资料弄的。
帮你顶起来,看看别人的回答吧。
来自:求助得到的回答
苏州千视通视觉科技股份有限公司_
2024-11-04 广告
千视通是国内第一梯队推出多模态AI大模型网关和边缘大模型一体机产品方案的领先AI企业。 拥有行业领先的多模态视觉语言大模型技术,践行“Make high-quality AI quickly”理念,平台基于多模态预训练,支持用户自定义算法可... 点击进入详情页
本回答由苏州千视通视觉科技股份有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式