opencv 在循环中调用cvtColor()可能出现的错误

在视频处理中经常需要截取roi区域进行处理,而不必全图处理,在循环中使用cvtColor()处理Mat型roi在时需要注意,作为输入的roi必须检查是否已经取值,如果将未取值的roi送入cvtColor()将报错。

                HoughCircles(tempSrc, circles, CV_HOUGH_GRADIENT, 1, 30, 100, 30, 13, 40);//霍夫圆变换寻找圆
for (size_t i = 0; i < circles.size(); i++)
{
center.x = cvRound(circles[i][0]);
center.y = cvRound(circles[i][1]);
radius = cvRound(circles[i][2]);
}


//截取感兴趣区域
int len = 2 * radius;
Mat roi(src,Rect(center.x - radius, center.y - radius, len, len));

Mat imgHSV;
if (roi.empty())
continue;

cvtColor(roi, imgHSV, COLOR_BGR2HSV);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值