资源简介
本代码,基于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
相关资源
- 基于qt平台的halcon读图的basler相机调用
- Qt 合集
- OpenCV 3.3.0&opencv;_contrib-3.3.0 编译成功后
- 毕业设计-QT-音乐播放器
- qt飞秋通讯终结版
- opencv310 release Win32 Dll Lib
- 【OpenCV3版】《OpenCV3编程入门》书本配
- opencv车辆识别、标记并计数
- OpenCV中文参考手册
- 人脸检测exe程序可直接运行
- Opencv中查找轮廓,并用直线拟合,检
- opencv需要的常用dllcv100、cv200.dll、ml
- Qt实现二值细胞图像区域上色
- 基于QT开发CAN总线上位机
- VS2017+QT5.9.1使用大漠插件(COM组件)
- opencv彩色三通道图片反色
- 车牌识别opencv
- 当当网数据1.1G)快速检索
- QT实现群聊私聊
- OpenCV教程--基础篇
- vs2010编译osg3.2.1,带有osgQtd.lib和osgQ
- Armadillo + BLAS & LAPACKQt Creator 编译安装
- qt-eclipse-integration-linux.x86-1.4.0.tar.gz
- 人脸识别+opencv
- win7 32位 vs2010 opencv3.00版本 opencv_worl
- QT 4.1.0函数手册.chm
- 基于QT技术实现无线点菜系统源代码
- UFTQTP12.01教程
- opencv3.4.1的lib库
- QT矩形检测
评论
共有 条评论