草庐IT

opencv_traincascade

全部标签

python - 填充轮廓 OpenCV 的外部

我正在尝试使用openCV和python语言将轮廓的外部区域涂成黑色。这是我的代码:contours,hierarchy=cv2.findContours(copy.deepcopy(img_copy),cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)areas=[cv2.contourArea(c)forcincontours]max_index=np.argmax(areas)cnt=contours[max_index]#howtofillofblacktheoutsideofthecontourscntplease?` 最

python - 如何在opencv/python中识别具有特定形状的直方图

我想在文本和图像部分分割图像(来自杂志)。我的图片中有几个ROI的直方图。我将opencv与python(cv2)结合使用。我想识别像这样的直方图http://matplotlib.sourceforge.net/users/image_tutorial-6.png因为它是文本区域的典型形状。我怎样才能做到这一点?编辑:感谢您到目前为止的帮助。我将我从ROI获得的直方图与我提供的示例直方图进行了比较:hist=cv2.calcHist(roi,[0,1],None,[180,256],ranges)compareValue=cv2.compareHist(hist,samplehist

python - 如何更新 Python OpenCV CV2 的 imshow() 窗口

我当前的程序将向用户输出图像,并根据用户输入,根据需要重新调整图像。长话短说,我正在尝试在图像文件中查找圆形对象。我将使用霍夫圆变换。然而,因为图像中我的许多圆圈都不是“完美的圆圈”,所以我正在做一个“猜测”圆圈半径的算法。但是,我想让用户根据需要重新调整半径。有没有办法要求用户输入,然后根据用户输入,重新调整imshow()中的窗口?现在,imshow()拒绝显示实际窗口,直到我使用cv2.waitKey(0),此时我不能要求用户输入,直到窗口被销毁。 最佳答案 您可以重复调用imshow而不会破坏它。是的,您可能需要waitKe

python - 如何使用 opencv (python) 从 url 读取 gif

我可以使用cv2as读取jpg文件importcv2importnumpyasnpimporturlliburl=r'http://www.mywebsite.com/abc.jpg'req=urllib.request.urlopen(url)arr=np.asarray(bytearray(req.read()),dtype=np.uint8)img=cv2.imdecode(arr,-1)cv2.imshow('abc',img)但是,当我使用gif文件执行此操作时,它会返回一个错误:error:(-215)size.width>0&&size.height>0infunctio

c# - 与 Python 相比,C# 中的 OpenCV MatchTemplate 太慢了

我用Python编写了一个解决方案,效果很好,但需要安装几个库和大量官僚设置才能工作。我决定在VisualStudioCommunity2017上使用C#中的GUI构建它,但在第一个成功的函数中,结果比在Python中慢得多。IMO它实际上应该更快。代码本质上只是大海捞针图像搜索,通过从文件夹中获取所有图像并在大海捞针中测试每个针(总共60张图像),在python中我返回字符串,但在C#中我是仅打印。我的Python代码如下:defgetImages(tela):retorno=[]folder='Images'img_rgb=cv2.imread(tela)forfilenamein

python - 从 BGR 到灰度的 OpenCV 颜色转换错误

我正在尝试使用以下代码将图像从BGR格式转换为灰度格式:img=cv2.imread('path//to//image//file')gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)这似乎工作正常:我检查了img变量的数据类型,结果是numpyndarray和形状是(100,80,3)。但是,如果我提供与cvtColor函数的输入具有相同维度的原生numpyndarray数据类型的图像,则会出现以下错误:Error:Assertionfailed(depth==0||depth==2||depth==5)incv::cvtColor,fileD:\Bu

python - 如何使用 Python OpenCV 查找图像中的极端外部点

我有这张雕像的图片。我正在尝试找到雕像的顶部、底部、左侧和右侧的大部分点。有没有办法测量每边的边缘以确定雕像上最外面的点?我想获取每边的(x,y)坐标。我尝试使用cv2.findContours()和cv2.drawContours()来绘制雕像的轮廓。importcv2img=cv2.imread('statue.png')gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)contours=cv2.findContours(gray,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)[0]cv2.drawContours(im

python - 如何从 OpenCV "cv2.keypoint"对象中提取 x,y 坐标?

我尝试使用以下代码:xCoordinate=point.x(点是cv2.keyPoint的类型)它给我错误说cv2.keyPoint没有属性'x' 最佳答案 point.pt是一个元组(x,y)`。所以,x=point.pt[0]y=point.pt[1]或者,(x,y)=point.pt 关于python-如何从OpenCV"cv2.keypoint"对象中提取x,y坐标?,我们在StackOverflow上找到一个类似的问题: https://stacko

python - OpenCV 3.1 绘制轮廓 '(-215) npoints > 0'

我正在尝试从轮廓创建mask,但出现C++错误。使用OSXYosemite、Python2.7.10、OpenCV3.1.0。defcreate_mask(img,cnt):'''Createamaskofthesamesizeastheimagebasedontheinteriorofthecontour.'''mask=np.zeros((img.shape[0],img.shape[1]),np.uint8)print("create_mask,cnt=%s"%cnt)cv2.drawContours(mask,[cnt],0,(0,255,0),-1)returnmaskpri

python - 是OpenCV函数 "pyrDown"设计的bug吗

我看到了pyrDown的声明:CV_EXPORTS_WvoidpyrDown(InputArraysrc,OutputArraydst,constSize&dstsize=Size(),intborderType=BORDER_DEFAULT);所以我假设第三个参数dstsize可能是这样的:Size(src.cols/4,src.rows/4。但是作为docs说:inanycase,thefollowingconditionsshouldbesatisfied:所以只有默认大小Size((src.cols+1)/2,(src.rows+1)/2)是合法的。那为什么需要参数dstsiz