求助 用opencv 从图中寻找圆形区域

如图,6个红框中的区域是圆,有没有办法从没有框的图中求出6个圆心和半径

图片说明

图片说明

c++
0

1个回答

hough变换可以确定圆的位置和半径,但是你这张图片预处理的效果不够好,建议重新做一下预处理算法,先把除圆之外的其他区域变得干净些。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
OpenCV查找图片中的圆形
代码位置:27-FindCircles.py import cv2 as cv import numpy as np src = cv.imread('./res/board.jpg', cv.IMREAD_COLOR) img = cv.cvtColor(src, cv.COLOR_BGR2GRAY) img = cv.medianBlur(img, 5) cimg = src.copy()...
opencv小案例_图像中圆对象提取
基于VS2015+WIN8通过opencv实现,图像中对象提取,真实案例,获取这样的对象,去掉其他干扰或非目标对象
OpenCV剪切图片圆形区域
代码位置:30-CutCircularArea.py 效果如下: 代码: import cv2 import numpy as np #加载图片 img = cv2.imread('./res/icon.png', cv2.IMREAD_UNCHANGED) #获取图片尺寸 height, width = img.shape[:2] height = int(height) width = ...
matlab/python+opencv提取圆形鱼眼图片的有效区域
1、原图: 2、有效区域: 3、python+opencv代码: import cv2 #读取鱼眼图片 img = cv2.imread("fisheye.jpg") #转换为灰度图片 img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #提取原图大小 rows,cols = img.shape[:2] print rows,cols #
从图片中完整切除圆形物体 opencv+python
面临一个任务就是要图片中的圆形物体切出来,然后做异常点检测(就是看那些圆形物体是异常点),因为异常点检测的方法还在摸索,现在就先把从图片中把圆形物体完整切出的方法写出来。 1.首先图片是这样的(圆形物体非常多) 2.接下来就是代码部分: import os import cv2 from PIL import Image import numpy as np import matpl...
opencv找出图像最亮点并画圆
#include #include using namespace std; using namespace cv; void DrawFilledCircle(Mat img, Point center,int _radius) { int thickness = -1; int lineType = 8; circle(img, center, _radius, Sc
《OpenCV视频中分割圆形区域》
OpenCV视频中分割圆形区域,利用判断图中的点是否在画的圆内,如果在圆内,则不变色;如果不在圆内,则改变它的的颜色。从而只能看到圆内的视频,并且可以把圆形部分截取,利用的是ROI(感兴趣区域),但是因为图片必须是矩形的,所以ROI也只能是矩形,截取的圆外接矩形。 使用的开发工具 OPENCV版本:OpenCV2.4.13 操作系统:windows10 VS版本:VS2015专业版 加载...
openCV任意几何形状感兴趣区域(ROI)提取
图像感兴趣区域(ROI)提取主要使用掩模来进行。掩模是二值图像,感兴趣区域的掩模值设置为255,非感兴趣区域的掩模值为0 获取掩模的方法主要有两种 方法一 使用opencv中Mat函数方法,调用Mat(Rect).setTo方法设置掩模 Mat Mat::operator()( const Rect& roi ) const //调用Mat(Rect).setTo方法 mask(rect).
用java大图中寻找小图位置
先说下思路: 因为是大图中寻找小图,所以小图必须是大图的一部分,那么对应的他们具有相同的像素点,所以为了一遍就可以搜出来,从小图中抽取若干个像素点(本次DEMO只选区了5个),从大图中找到像素与第一个点满足的,然后直接进行对比第二个点。。。到N个。都符合,说明就找到了,然后为了进行验证,对图片进行了相似度运算。 话不多说,上代码: SearchPixelPosition核心类 public...
OpenCV图像处理--将图像裁剪为圆形
1,需求为了便于项目前端展示用户头像,需要将头像处理为圆形,非圆形区域设置为透明。其实,前端可以在显示的时候处理,但是前端采用WebGL,暂时搞不定,所以由后端进行图像的一次性加工。 于是,我们尝试用Linux工具Convert来完成,但是,百思无解,后续决定采用Python+OpenCV。2,实现优秀的代码不需要解释,直接看代码吧,O(∩_∩)O。#coding:utf8import numpy
OpenCV学习28--在图像中寻找轮廓
查找轮廓 什么是轮廓:一个轮廓是由图像中的一系列点组成的,也就是图像中的一条曲线。在OpenCV中一般用序列来存储轮廓信息。序列中的每个元素是曲线中每个点的位置。 关于序列:序列是内存存储器中可以存储的一种对象,序列是某种结构的链表。 下面是序列结构体: typedef sturct CvSeq{ int flags; int header_size; CvSeq *...
基于python的opencv霍夫找圆,显示坐标和名称,有超详细注释
近来刚接触opencv,组长布置给我一个任务,就是找圆。但是opencv资料很多,基于python的却很少,我找了许多代码都不是太满意,遂自己一行行扣代码,并写上普通人都能看得懂的注释。目前还不能解决两圆相切环境下的外圆相交问题,期待大神指正。下面上代码!我是用jupyter写的 #加载环境包 import cv2 import numpy as np #图片简单处理 img = cv2.im...
在大图中寻找小图,并定位具体坐标点
在大图中寻找小图,并定位具体坐标点,DLL文件,速度很快。 参数说明: largePic:大图 smallPic:小图 leftupX:左上角X坐标 leftupY:左上角Y坐标 rightdownX:右下角X坐标 rightdownY:右下角Y坐标 tolerance:容差 similarity:相似度 Transparentflag:透明色标记 TransparentR:透明色Red TransparentG:透明色Green TransparentB:透明色Blue smallInLargeX:获得的小图在大图中的X坐标 smallInLargeY:获得的小图在大图中的Y坐标 感谢老师的代码思想!
opencv 多圆查找
测试图片 源代码:bool MainWindow::findAllContours() { cv::Mat filteredImg; cv::Mat binariedImg; // cv::Mat destImg; vector> contours; vector hierarchy; fileName = QFileDial
OpenCV截取图像的任意形状区域,规则的图形(圆、椭圆、矩形),不规则鼠标自己选择
OpenCV截取图像的任意形状区域(ROI),规则的图形(圆、椭圆、矩形),不规则鼠标自己选择
opencv3寻找最小包围圆形-minEnclosingCircle函数
#include #include #include using namespace cv; using namespace std; int main() { Mat srcImage(Size(600, 600), CV_8UC3, Scalar(0)); RNG &rng = theRNG(); char key; while (1) { //随机生成一些点 //首
Python+Opencv寻找图像中最亮的区域
目录一、场景需求解读二、算法原理简介三、算法代码实现四、代码运行步骤五、算法效果展示和分析六、思维扩展参考资料注意事项 一、场景需求解读   在有些现实场景中,我们需要去使用算法自动的寻找到图片中的最亮的区域,这个区域是我们感兴趣的目标所在的位置,比较典型的是一个应用是视网膜图像,图像中视网膜所在的位置比较亮,而其它地方比较暗,我们更加关注视网膜所在的区域,因而需要使用算法自动的寻找到这个区域,然...
OpenCV查找图片中的圆形2
代码位置:28-FindCircles2.py 在一些特定的环境下,需要找到特定的圆形。如下的情况是我最理想的查找方式了。 找最大的那个圆,还得是完整的。 import cv2 as cv import numpy as np src = cv.imread('./res/IMG00868.jpg', cv.IMREAD_COLOR) height, width = src.shape[:2...
OpenCV实践之路——圆形切割和矩形切割
之前对于Opencv的学习,一直是一种查找资料然后运行别人的代码的状态。自己最多修改个变量什么的。直到上学期期末的时候才开始有意识地给自己让自己解决一些自己提出的问题。也许在大神们看来这些问题太多简单甚至幼稚,但是这就是现在的我给自己找的一些问题。能发出来的都是解决的,还有很多没有解决暂时没办法发出来。只能等不知道什么时候的以后,实现之后再发出来了。现在除了这些小练习之外,还在做的就是实现何凯明的
【OpenCV】提取并标注图像中的直线
提取并标注图像中的直线 使用Canny算法 原图 Canny检测图 Canny彩色图 (1)转成灰度图 (2)降噪 (3)使用Canny算子 (4)使用Canny算子输出的边缘图作为掩码,来将原图拷到目标图中 Canny程序 #include <opencv2/opencv.hpp> #include<opencv2/highgui/highgui.hpp> ...
OpenCV实战(四)——对象(圆)提取
      现在我们想从一个杂乱的背景中提取出某个规则图像的轮廓,比方说圆。我们如何才能在一张图像中找的圆的轮廓,同时找到它的圆心坐标以及它的面积和周长呢?我的思路是阈值分割+形态学处理+高宽比过滤。大家也可以尝试下霍夫圆检测的思路。       接下我们编写代码:#include <opencv2/opencv.hpp> #include <iostream> #incl...
Opencv2相似图像检索
目标:选出一个参考图像,找出一组图像中与参考图像最相似的图像。 相似图像检索:基于图像内容的相似度检索,可以利用两幅图像的直方图特征,评估两幅图像的直方图相似度,进而得到两幅图像的相似度。第一步:直方图特征提取函数calcHist用来计算图像直方图特征,函数原型如下:void calcHist(const Mat* images, int nimages, const int* channels,
计算圆轮廓面积提取圆心
VS2013下用OPENCV完成对圆轮廓获取后,计算圆面积和圆心位置
OpenCV图片中找出你想要找的面孔
在《OpenCV训练人脸模型并生成XML文件》里面讲解了如何训练人脸模型,这次就用一用训练出来的人脸模型。 代码位置:24-FindActorFromPicture.py import cv2 import os img = cv2.imread('./res/zrfGrouphoto.jpeg') path = os.getcwd() + '/XML/haarcascade_frontalf...
opencv模板匹配来识别图中的物体
本次识别过程中,由于模板的大小识别的物体不精确,导致识别误差较大。 为了避免由于模板导致的误差,本次读取的模板后对模板进行一定比例的缩放,在去匹配模板,大大提高了识别的准确率。 模板匹配实现过程: 1.准备模板图片以及所要匹配的图片: 2.缩放模板。 3.模板匹配。 4.设置阈值(六种模板匹配算法的阈值有所偏差,其中'cv2.TM_SQDIFF', 'cv2.TM_SQDIFF_NOR...
在大图中查找小图显示位置
在大图片中查找小图的位置。 并圈出位置。
Opencv 找轮廓并画出相应的矩形
找轮廓参考以下大神的,对于里面的方法和结果存储解释的很清楚; http://blog.csdn.net/gubenpeiyuan/article/details/44922413 缺少的是画相应包围矩形的,其中找矩形用最小外接矩形函数cvMinAreaRect2 。 CvBox2D rect; CvPoint2D32f Corners[4]; rect= cvMinAreaRect2(p
opencv 查找白色图片的一个黑点
一张白色图片,只有一个黑点,使用find contour能够找到,但是使用查找find area返回0.0 解决原因: The area of polygon is 0 instead of 1, because the polygon is not a square with 1 pixel edge, but a point. This happened because p
opencv 在图片中找对应矩形(形状分析)
已有一张图片,找到里面需要的矩形。代码#include <opencv2/opencv.hpp> #include <opencv2/opencv_modules.hpp> #include <opencv2/nonfree/features2d.hpp> #include <opencv2/nonfree/nonfree.hpp> #include <opencv2/core/Core.hpp>
python+opencv实现相似图片的搜索
在学习时:http://python.jobbole.com/80860/ 在这里对上面给出的链接中的代码进行整理和修改了下,图像搜索的原理,以及搜索的大致步骤和想法,在原博主文章中已经讲解的很详细了,在这里我就不写了,对于上面链接中的代码,有些地方是需要改动的 先贴出我的代码: 直接上代码: color_descriptor.py # -*- coding: utf-8 -*-...
OpenCV截取图像的任意区域(ROI),规则的图形(圆、椭圆、矩形),不规则鼠标自己选择
OpenCV截取图像的任意区域(ROI),规则的图形(圆、椭圆、矩形),不规则鼠标自己选择.
检测出图片中的直线且标记出图片中的最长线段
clc; clear all; I=imread('test.jpg'); figure; imshow(I); I=rgb2gray(I); rot1=imrotate(I,33,'crop');  %旋转图像 bw=edge(rot1,'canny');   %使用边缘检测形成二值图像 [H,T,R]=hough(bw);   %生成点的叠加矩阵和坐标T,R figure;
opencv2检测图片中的矩形
(1)实现了矩形的检测(2)此代码是针对图片中的矩形进行的(3)此代码实现了一个文件夹里的图片的批量处理
OpenCV源码解析之在图片中找四边形-FindSquares
这个FindSquares算是比较典型的综合技能项目吧,用到的小技巧还不少,我们先看一下几个函数吧, 函数static double angle的作用是求角度 根据余弦定理: 在平面座标中 通过计算变换,最后可以得到: 嗯,函数中直接用了这个结果。 其余函数的说明 1.函数Canny进行边缘检测,和Sobel原理差不多,不过相对加了些料,稍有点复杂,以后有时间再说吧。  2.函数...
OpenCV定义一个或多个感兴趣区域
定义一个或多个感兴趣区域,详见博客:http://blog.csdn.net/fightingforcv/article/details/39031723
OpenCV数字识别
  熟悉OpenCV的朋友都知道OpenCV可以用来识别很多东西,今天我们就以基本的数字识别来探索OpenCV的识别之路。 大致的步骤如下: (1)首先要加载一幅含有数字的图片,并对它进行二值化。 (2)寻找数字的大致轮廓。 (3)对找到的数字轮廓按照输入图片的顺序进行排序。 (4)根据上一步找到的顺序对数字轮廓进行分割,将单个数字轮廓提取出来。 (5)模板匹配 1、图片二值化处理 ...
我的第一份MATLAB算法作业 - 寻找连通图中的全部回路
帮实验室师兄找组合做的作业~ 原始给出的数据是两两连接的边 A,B A,C A,D B,C C,D C,E D,E F,E 这个样子 首先要把信息提取出来~ function [all1,all2,all3] = allMole(file) [A,text] = xlsread(file); all = [];k = 1; num = length(text); for...
深度优先求无向图中顶点a到顶点i的最短路径
void Minway()//输出最短路径 { int min=10000; for(int i=0;i<allPath.size();i++) if(all[i]<min) min=all[i]; for(int j=0;j<allPath.size();j++) if(all[j]==min) cout<<"最短路径: "<<allPath[j]<<" 长度:"<<all[j]<<endl; cout<<endl; }
图像中搜索圆(特别是残缺的圆)
 类似于下面的图像,寻找残缺的圆,用hough变换的话,反正我是搞不出来,自己写了一个,已知圆的大概半径,在图像上面遍历,对遍历的结果打分,分数最高的就是搜寻的圆,将对应的轮廓点拟合圆,即可求得  以下是代码,亲自试了,可用: #include &amp;lt;string&amp;gt; #include &amp;lt;cxcore.h&amp;gt; #include &amp;lt;cv.h&amp;gt; #include ...
OpenCV 提取图片中的曲线
简单介绍  在实际的应用中,我们常常需要对图像中的曲线进行描述、处理,这个曲线可以是轮廓,骨架或者其他。可以用deque<Point> 描述曲线,接下来简单介绍下如何从图片中搜索这些曲线并保存。   首先,输入的图片是一张二值图片 (白色为曲线),其中包含的曲线宽度为 1 像素的 (如果曲线不是 1 像素的 先提取其骨架)。遍历寻找图像中第一个白色的点,然后从这个点开始延伸寻找曲线。注意,第一个找