您的位置:首页 > 编程语言 > C语言/C++

OpenCV3_C++_DetectConers()图像上角检测 实例

2017-10-15 10:51 507 查看

Opencv3 的开发环境安装和导入请看

http://blog.csdn.net/sileixinhua/article/details/71175748

所有的OpenCV3_C++实例代码请看

https://github.com/sileixinhua/OpenCV_C-_tutorials

实例

#include "stdafx.h"
#include <opencv2/opencv.hpp>
#pragma comment(lib,"opencv_world330.lib")

//using namespace cv;
//using namespace std;
//去掉以上两行代码注释之后就可以不用在下面的代码中加上cv::和std::
//cv::为OpenCV的函数库
//std::为C++的标准函数库

int DetectConers() {
cv::Mat src, gray, dst;
const int maxCorners = 50, blockSize = 3;
const double qualityLevel = 0.01, minDistance = 20.0, k = 0.04;
const bool useHarrisDetector = false;
std::vector< cv::Point2f > corners;

const char* filename = "C:\\Code\\FirstOpenCVProgramming\\lena.jpg";

cv::imread(filename).copyTo(src);
if (src.empty()) {
throw("Faild open file.");
}

dst = src.clone();

cvtColor(src,gray,cv::COLOR_RGB2GRAY);
goodFeaturesToTrack(gray, corners, maxCorners, qualityLevel,
minDistance, cv::Mat(), blockSize, useHarrisDetector, k);
//图像上角检测

for (size_t i = 0; i < corners.size(); i++) {
circle(dst,corners[i],8,cv::Scalar(255,255,0),2);
}
//图像上确认有角的地方画圈

cv::imshow("src", src);
cv::imshow("dst", dst);
cv::imwrite("C:\\Code\\FirstOpenCVProgramming\\DetectConers.jpg", dst);

cv::waitKey();

return 0;
}

int main()
{
//以下的方法如果想运行,直接把前头的注释去掉即可
//运行代码的时候请改掉filename里的地址
//我的opencv是安装在C盘目录下
//一些目录地址请自行修改一下

DetectConers(); // 图像上角检测

return 0;
}


原图像



结果图像

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: