if ((int)res[j].class_id == 0)
{
cv:Mat imgThresholded;
sum, blacksum = 0;
head_num++;
cv::Mat dst = ori_img(helmet_r);
inRange(dst, Scalar(0, 0, 0), Scalar(127, 127, 127), imgThresholded); //黑色
for(int i = 0; i < imgThresholded.rows; ++i){ //遍历行
for(int j = 0; j < imgThresholded.cols; ++j){
sum++;
if (imgThresholded.at<uchar>(i, j)>10){blacksum++;}}}
black_rate = blacksum/sum;
if (black_rate > 0.85){
cv::putText(pr_img, " helmet W", cv::Point(r.x, r.y - 1), cv::FONT_HERSHEY_PLAIN, 1.2, cv::Scalar(0xFF, 0xFF, 0xFF), 2);
}
}
C/C++ 图像颜色判断
最新推荐文章于 2023-07-05 15:10:50 发布
这段代码主要展示了如何使用OpenCV进行图像处理,通过inRange函数对图像进行二值化处理,然后遍历图像计算黑色像素点的比例。当黑色像素点比例超过0.85时,在原始图像上标注'HelmetW'。涉及到的技术包括图像二值化、像素点统计和文字标注。
2327

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



