• 飞龙绣球2.0


      简化了识别的过程,但是基本的原理没有改变,加入了轨迹条,更加方便的调节参数

    Mat img;
    //灰度值归一化
    Mat bgr;
    //HSV图像
    Mat hsv;
    //输出图像
    Mat mask;
    Mat picture;
    
    
    int Hm = 0, Sm = 43, Vm = 46;
    int Hx = 10, Sx = 255, Vx = 255;
    void CALL_BACK(int,void*)
    {
        inRange(hsv, Scalar(Hm, Sm, Vm), Scalar(Hx, Sx,Vx), mask);
        imshow("颜色筛选", mask);
    }
    
    int main(int argc, char** argv)
    {
        system("color 02");
        cout << "寻找黄色飞龙绣球得到最小外边框" << endl;
        VideoCapture capture(0);
        while (1)
        {
            //帧转变为图像
            capture >> picture;//imread("D:\4.jpg");
             //方框滤波处理
            boxFilter(picture, img, -1, Size(5, 2));
            bgr = img.clone();        //对输出图像大小的限制 Automatic size
            cvtColor(bgr, hsv, CV_BGR2HSV);
    
            createTrackbar("Hmin","颜色筛选",&Hm,255, CALL_BACK);
            createTrackbar("Smin", "颜色筛选", &Sm, 255, CALL_BACK);
            createTrackbar("Vmin", "颜色筛选", &Vm, 255, CALL_BACK);
            createTrackbar("Hx", "颜色筛选", &Hx, 255, CALL_BACK);
            createTrackbar("Sx", "颜色筛选", &Sx, 255, CALL_BACK);
            createTrackbar("Vx", "颜色筛选", &Vx, 255, CALL_BACK);
            CALL_BACK(0, 0);

          Mat element = getStructuringElement(MORPH_RECT, Size(9, 9)); //图像膨胀
          dilate(mask, mask, element, Point(-1, -1), 2);

            
            namedWindow("DEALED", 0);
    
            vector<vector<Point> > contours;
            vector<Vec4i> hierarchy;
            findContours(mask, contours, hierarchy, RETR_CCOMP, CHAIN_APPROX_SIMPLE);
            RotatedRect box;
            double area = 0;
            for (int i = 0; i < contours.size(); i++)
            {
                if (contourArea(contours[i]) > area)
                {
                    area = contourArea(contours[i]);
                    box = minAreaRect(contours[i]);
                }
            }
            Point2f vertex[4];
            box.points(vertex);
            for (int i = 0; i < 4; i++)
            {
               line(img, vertex[i], vertex[(i + 1) % 4], Scalar(100, 200, 300), 2,LINE_AA);
            }
            imshow("DEALED", img);
            waitKey(10);
        }
        return 0;
    }
    

      后续会继续的更新的

  • 相关阅读:
    iOS9下App Store新应用提审攻略
    信息安全系统设计基础第十一周学习总结
    Linux第十一次学习笔记
    信息安全系统设计基础第十周学习总结
    Linux第八次学习笔记
    Linux第七次实验笔记
    家庭作业3.67
    Linux第六次学习笔记
    Linux第五次学习笔记
    Linux第四次学习笔记
  • 原文地址:https://www.cnblogs.com/Loving-Q/p/12629627.html
Copyright © 2020-2023  润新知