资源简介
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
相关资源
- unity3d插件-脚本-图像识别OpenCVforUnit
- opencv+vs2017实现图象去雾
- opencv-3.2.0-vc14 安装包
- opencv图像细化代码
- Improved adaptive Gausian mixture model for ba
- 使用Hu矩进行形状匹配
- Linux下的QT车牌识别门禁系统基于ope
- 读取并可视化DICOM图像VTK & OpenCV
- opencv中关于高斯建模的参考论文英文
- Learning Opencv 课后习题答案2-5
- OpenCV中cvvImage的头文件和源代码
- opencv与qt结合使用的(亲测可用)
- Opencv2链接CUDA9.0中cmake修改版
- opencv处理图像8*8分块DCT变换和量化
- opencv 人头统计
- opencv灰度图像和二维数组相互转换操
- zedboard移植opencv+qt的人脸检测
- opencv实现图像灰度化和二值化
- NCVPixelOperations.hpp
- CVUI配合Opencv书写界面神器
- 基于Chan-Vese模型图像分割算法代码
- openCV中grabcut图像分割函数使用VS2017
- 基于opencv的三维重建程序
- 2.4.9版本的opencv_createsamples.exe和openc
- opencv.props
- opencv数字识别
- OpenCV人脸识别训练集
- 图像的载入显示和输出程序by浅墨
- 基于视频的运动目标检测
- OpenCV计算图像灰度均值
评论
共有 条评论