0


利用OpenCV检测图像中的多个水果

OpenCV检测图像中的多个水果

最近面试碰到一个图像算法题,要求:

(1)检测一副图像中的多个苹果并标识出来。

(2)标识时需要将图像中苹果按照从大到小给定序号,显示出来。

基于以上两点,准备利用C++进行编写代码的同时,利用OpenCV进行相关操作,在此记录一下。

先附上部分效果图:
在这里插入图片描述

1 思路
对于图像本身而言,因为苹果是红色的,基于这一特性,想法自然是先按照颜色进行分类,然后提取图像中的红色区域了,然后对图像进行检测和标识。

step1:滤波

    Mat img =imread("D:/VSprojection/detect_apple/detect_apple/1.jpeg", cv::IMREAD_COLOR);//用来输出//step1:BGR->HSV
    Mat src_HSV;cvtColor(src, src_HSV, COLOR_BGR2HSV);//imshow("source_image", src);medianBlur(src_HSV, src_HSV,5);

step2:提取红色区域

//step2:提取苹果int imgrow = src.rows;int imgcol = src.cols;for(int m =0; m < imgrow; m++){
   for(int n =0; n < imgcol; n++){
   //提取红色区域if(!((((src_HSV.at<Vec3b>(m, n)[0]>=0)&&(src_HSV.at<Vec3b>(m, n)[0]<=15))||(src_HSV.at<Vec3b>(m, n)[0]>=125)&&(src_HSV.at<Vec3b>(m, n)[0]<=180))&&(src_HSV
标签: opencv 人工智能 c++

本文转载自: https://blog.csdn.net/qq_42221707/article/details/128025782
版权归原作者 徽州SLAM李 所有, 如有侵权,请联系我们删除。

“利用OpenCV检测图像中的多个水果”的评论:

还没有评论