使用opencv,在iOS环境下检测边角点,然后画出最大矩形
2017-10-31 11:11
363 查看
直接看代码,具体环境这里就不说了
下面是原图和效果图
原图:
效果图:
// 检测边角点,然后画出最大矩形 + (UIImage*)opneCvdot:(UIImage*)image { cv::Mat src; UIImageToMat(image, src); cv::Mat grayMat; cv::cvtColor(src, grayMat, CV_BGR2GRAY); //根据参数找出角点 std::vector<cv::Point2f> corners; int maxCorners = 8; // // 最多检测到的角点数, 12 double qualityLevel = 0.05; // 阈值系数 0.01 double minDistance = 10; // 角点间的最小距离 10 int blockSize = 10; // 计算协方差矩阵时的窗口大小 10 bool useHarrisDetector = false; // 是否使用Harris角点检测,如不指定,则计算shi-tomasi角点, false double k = 0.04; // Harris角点检测需要的k值 0.04 cv::goodFeaturesToTrack(cv::InputArray(grayMat), cv::OutputArray(corners), maxCorners, qualityLevel, minDistance, cv::Mat(), blockSize, useHarrisDetector, k); //建立包围所有角点的矩形 cv::Rect rect = cv::boundingRect(cv::InputArray(corners)); //把每个检测到的角点在图中用圆形标识出来(方便调试) for( int i = 0; i < corners.size(); i++ ) { cv::circle(cv::InputOutputArray(grayMat), corners[i], 10, cv::Scalar(0,255,0), 2, 8, 0); } //把包围所有角点的矩形也画出来(方便调试) cv::rectangle(grayMat, rect, cv::Scalar(0,255,0), 5, 8, 0); return MatToUIImage(grayMat); }
下面是原图和效果图
原图:
效果图:
相关文章推荐
- opencv2通过使用canny边缘检测使摄像头内的环境边缘化
- Reachability,ios检测网络使用环境
- ios--OpenCV--检测直线、圆、矩形
- 基于颜色模式的颜色条形码检测(使用python 2.7和opencv 2.2)
- 在Windows环境下使用opencv2.2的python绑定
- 在Visual Studio中使用MonoTouch开发iOS应用程序(上):环境配置
- 使用instrument检测ios程序内存问题
- opencv 检测直线、圆、矩形
- 在Visual Studio中使用MonoTouch开发iOS应用程序(上):环境配置
- IOS网络检测及使用
- IOS 中调用opencv进行人脸检测
- IOS开发学习一 :Cocoa环境熟悉和Xcode使用
- 使用OpenCv的cvMinAreaRect2函数获取轮廓的可倾斜最小矩形区域
- 使用OpenCV 2.4.0 实现FPC上焊点检测功能
- C#.net 环境下使用OpenCV(一)
- VC++2005环境下OpenCV的使用
- OpenCV编程案例:使用轮廓函数检测连通区域
- 【华磊原创】安装程序自动检测安装.Net Framework运行环境(使用InnoSetup)
- iOS中使用opencv碰到这样的编译错误:non-const static data member must be initialized out of line
- C#.net 环境下使用OpenCV(一)