资源简介
cvHoughCircle用于检测单个圆的效果较好,当检测到同心圆时,效果欠佳。本程序做了一些改进,使得同心圆检测效果较好

代码片段和文件信息
#include
#include
#include
using namespace cv;
using namespace std;//注意!!
int main( )
{
Mat srcImage = imread(“part.png“);
imshow(“【原始图】“ srcImage);
int rows=srcImage.rowscols=srcImage.cols;
Mat grayImagebinaryImage;
cvtColor(srcImagegrayImage CV_BGR2GRAY);
threshold(grayImagebinaryImage200255THRESH_BINARY);
Mat tempoutImage;
binaryImage.copyTo(temp);
binaryImage.copyTo(outImage);
//Temp是一张全白的图像
for(int i=0;i for(int j=0;j temp.at(ij)=0;
temp.copyTo(outImage);
cvtColor(srcImagegrayImage CV_BGR2GRAY);
threshold(grayImagebinaryImage200255THRESH_BINARY);
imshow(“【二值图像】“binaryImage);
Canny(binaryImagebinaryImage1002003);
imshow(“【边缘图像】“binaryImage);
//【4】进行霍夫圆变换
vector circles0;
vector circles1;
HoughCircles(binaryImage circles0 CV_HOUGH_GRADIENT3 10 200 250 10 200 );
HoughCircles(binaryImage circles1 CV_HOUGH_GRADIENT2.9 300 200 120 10 100 );
//【5】依次在图中绘制出圆
for( size_t i = 0; i < circles1.size(); i++ )
{
Point center(cvRound(circles1[i][0]) cvRound(circles1[i][1]));
int radius = cvRound(circles1[i][2]);
circle( temp center radius Scalar(255255255) 0.5 8 0 );
}
for( size_t i = 0; i < circles0.size(); i++ )
{
Point center(cvRound(circles0[i][0]) cvRound(circles0[i][1]));
int radius = cvRound(circles0[i][2]);
circle( temp center radius Scalar(255255255) 0.5 8 0 );
}
threshold(temptemp200255THRESH_BINARY);
imshow(“【初次检测图】“ temp);
//将得到的二值图像和原图产生的二值图像相与,取出相应的圆
for(int i=0;i for(int j=0;j {
if((binaryImage.at(ij)==255) && (temp.at(ij)==255))
outImage.at(ij)=255;
else
outImage.at(ij)=0;
}
imshow(“【二次检测图】“outImage);
waitKey(0);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2155 2015-03-31 21:21 hough_circle.cpp
----------- --------- ---------- ----- ----
2155 1
- 上一篇:windows下自动FTP脚本
- 下一篇:dxc采集器破解版vip3.0
相关资源
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 基于Opencv实现的图像纠偏
- ImageWatch2019.vsix
评论
共有 条评论