• 大小: 17.96MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-02
  • 语言: 其他
  • 标签: opencv  qt  

资源简介

本代码,基于opencv寻找二维码的四个顶点,并通过仿射变换对二维码进行畸变矫正。不须标定,简单易用。

资源截图

代码片段和文件信息

#include 
#include 
#include
#include
using namespace cv;
using namespace std;
//https://zhuanlan.zhihu.com/p/24591720

void sort_point(vector  & vpvector  & dest_vp)
{
    Point2f temp;
    temp.x=0;temp.y=0;
    dest_vp.push_back(temp);
    dest_vp.push_back(temp);
    dest_vp.push_back(temp);
    dest_vp.push_back(temp);
    for(int i=0;i    {
        if(vp[i].x < 460.8/2 && vp[i].y<328.8/2){dest_vp[0].x=vp[i].x; dest_vp[0].y=vp[i].y;}
        if(vp[i].x > 460.8/2 && vp[i].y<328.8/2){dest_vp[1].x=vp[i].x; dest_vp[1].y=vp[i].y;}
        if(vp[i].x < 460.8/2 && vp[i].y>328.8/2){dest_vp[2].x=vp[i].x; dest_vp[2].y=vp[i].y;}
        if(vp[i].x > 460.8/2 && vp[i].y>328.8/2){dest_vp[3].x=vp[i].x; dest_vp[3].y=vp[i].y;}
    }
}

int main(int argc char *argv[])
{
        QCoreApplication a(argc argv);
        namedWindow(“erzhihua“CV_WINDOW_NORMAL);
        Mat imageSource=imread(“chessa1.jpg“);
        cvtColor(imageSourceimageSourceCV_BGR2GRAY);
        resize(imageSourceimageSourceSize(460.8328.8));

        {
        imshow(“yuanshi“imageSource);
        waitKey(0);
        Mat image;
        imageSource.copyTo(image);
        GaussianBlur(imageimageSize(99)1);  //滤波
        threshold(imageimage210255CV_THRESH_BINARY);  //二值化
        imshow(“erzhihua“image);
        waitKey(0);
        Mat element=getStructuringElement(2Size(99));  //膨胀腐蚀核
        //morphologyEx(imageimageMORPH_OPENelement);
        for(int i=0;i<5;i++)
        {
            erode(imageimageelement);
            i++;
        }
        imshow(“fushi s“image);
        Mat image1;
        erode(imageimage1element);
        element=getStructuringElement(2Size(6060));  //膨胀腐蚀核
        dilate(imageimageelement);
        dilate(image1image1element);
        image1=image-image1;
        imshow(“fushi s“image);
        waitKey(0);
        imshow(“bianjie“image1);
        waitKey(0);
        //寻找直线 边界定位也可以用findContours实现
        vector lines;
         HoughLines(image1lines1CV_PI/15017500);
        Mat DrawLine=Mat::zeros(image1.size()CV_8UC1);
        for(int i=0;i        {
            float rho=lines[i][0];
            float theta=lines[i][1];
            Point pt1pt2;
            double a=cos(theta)b=sin(theta);
            double x0=a*rhoy0=b*rho;
            pt1.x=cvRound(x0+1000*(-b));
            pt1.y=cvRound(y0+1000*a);
            pt2.x=cvRound(x0-1000*(-b));
            pt2.y=cvRound(y0-1000*a);
            line(DrawLinept1pt2Scalar(255)1CV_AA);
        }
        imshow(“zhixian“DrawLine);
        waitKey(0);
        Point2f P1[4];
        Point2f P2[4];
        vectorcorners;
        vectorcorners_sort;
        goodFeaturesToTrack(DrawLinecorners40.110Mat()); //角点检测
        sort_point(cornerscorners_sort);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-06-21 16:50  jiaozheng\
     目录           0  2018-06-21 16:47  jiaozheng\bin_debug\
     文件     5825536  2018-05-08 00:26  jiaozheng\bin_debug\Qt5Core.dll
     文件    13222912  2018-05-08 00:26  jiaozheng\bin_debug\Qt5Cored.dll
     文件     6052352  2018-01-16 19:32  jiaozheng\bin_debug\Qt5Gui.dll
     文件    13869568  2018-01-16 19:32  jiaozheng\bin_debug\Qt5Guid.dll
     文件     1228800  2018-01-16 19:31  jiaozheng\bin_debug\Qt5Network.dll
     文件       43008  2018-01-18 13:58  jiaozheng\bin_debug\Qt5TextToSpeech.dll
     文件      134144  2018-01-18 13:58  jiaozheng\bin_debug\Qt5TextToSpeechd.dll
     文件     5588992  2018-01-16 19:40  jiaozheng\bin_debug\Qt5Widgets.dll
     文件    11732992  2018-01-16 19:40  jiaozheng\bin_debug\Qt5Widgetsd.dll
     文件       73877  2018-06-20 14:10  jiaozheng\bin_debug\chessa1.jpg
     文件      151958  2018-06-21 16:50  jiaozheng\bin_debug\jiaozheng.bmp
     文件      140288  2018-06-21 16:50  jiaozheng\bin_debug\jiaozheng.exe
     文件     3042640  2018-06-21 16:50  jiaozheng\bin_debug\jiaozheng.ilk
     文件     4878336  2018-06-21 16:50  jiaozheng\bin_debug\jiaozheng.pdb
     文件     1349632  2018-01-16 19:47  jiaozheng\bin_debug\qwindows.dll
     目录           0  2018-06-21 16:39  jiaozheng\bin_release\
     文件       73877  2018-06-20 14:10  jiaozheng\bin_release\1.jpg
     文件       31232  2018-06-20 14:13  jiaozheng\bin_release\jiaozheng.exe
     文件        1262  2018-06-20 14:04  jiaozheng\jiaozheng.pro
     文件       23975  2018-06-21 16:50  jiaozheng\jiaozheng.pro.user
     文件        4231  2018-06-21 16:50  jiaozheng\main.cpp

评论

共有 条评论