草庐IT

python - 使用 OpenCV 在 Python 中计算图像中的黑色像素数

我在Python中有以下测试代码来读取、阈值和显示图像:importcv2importnumpyasnpfrommatplotlibimportpyplotasplt#readimageimg=cv2.imread('slice-309.png',0)ret,thresh=cv2.threshold(img,0,230,cv2.THRESH_BINARY)height,width=img.shapeprint"heightandwidth:",height,widthsize=img.sizeprint"sizeoftheimageinnumberofpixels",size#plot

python - 如何裁剪或删除图像中的白色背景

我正在尝试使用OpenCV和Python比较图像。考虑这些图像:两者都有一双相同的鞋子,设置为白色背景。唯一的区别是第一个的背景比第二个高。我想知道如何以编程方式裁剪两者的白色背景,以便我只剩下那双鞋。我必须补充一点,我无法手动裁剪背景。 最佳答案 你在评论中的要求:鞋子是白色背景的。我想彻底摆脱边界;如留下一个白色或透明背景的矩形框,具有图片中鞋子的长度和宽度。然后我裁剪目标区域的步骤:Converttogray,andthresholdMorph-optoremovenoiseFindthemax-areacontourCrop

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

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

python - cv2.imshow 图像窗口放置在可视屏幕之外

我正在使用menpo的cv2安装运行python35的Anaconda安装。我遇到了cv2.imshow()在运行类似于下面的代码时,将图像窗口不一致地放置在可视屏幕之外的问题,既作为独立脚本又在控制台中逐行运行(cmd,蜘蛛,ipython)...importcv2img=cv2.imread('Image71.jpg',0)cv2.startWindowThread()cv2.namedWindow('image')cv2.imshow('image',img)cv2.waitKey(0)cv2.destroyAllWindows()我也尝试了上面没有cv2.starWindowT

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 Python cv2.BackgroundSubtractor 参数

总结似乎更改BackgroundSubtractorMOG的参数不会影响算法的结果。我使用Python:2.7.6|Anaconda2.1.0(64位)OpenCV:'2.4.10'操作系统:Windows7x64算法的默认参数是:history=200,nmixtures=5,backgroundRatio=0.7因此,创建具有不同参数的背景减法器应该会产生不同的结果。但是我总是使用默认参数和自定义参数得到相同的结果(前景蒙版)。重现问题首先,创建两个具有不同参数的背景减法器对象:bg1=cv2.BackgroundSubtractorMOG()bg2=cv2.BackgroundS

python - 平面图边缘检测 - 图像处理?

我是一个来自完全不同学科的人,他需要一些图像处理技术来在项目中实现这个目标。我需要从室内平面图导出边缘,如下所示我试过这个特定的Python边缘检测片段:fromPILimportImage,ImageFilterimage=Image.open('L12-ST.jpg')image=image.filter(ImageFilter.FIND_EDGES)image.save('new_name.png')但是,它返回的详细信息超出了我的需要。它基本上检测所有边缘,包括房间墙壁。实际上,我需要的只是走廊的墙壁。所以我期待这样的事情我该怎么做?我正在使用Python,但非常感谢任何通用或

python - 这里的ret和frame是什么意思?

什么时候使用ret和frame?这些变量持有什么值?我刚刚开始图像处理,所以如果有更多更改,请告诉我。谢谢importnumpyasnpimportcv2cap=cv2.VideoCapture('SampleLapHUL_OB_1.56.641_Graphic.mpg')#DefinethecodecandcreateVideoWriterobject#fourcc=cv2.cv.CV_FOURCC(*'MJPG')out=cv2.VideoWriter('output.mpg',0,60.0,(640,480))while(cap.isOpened()):ret,frame=cap

python - 在 openCV 中显示的图像之间暂停

我想展示几张图片,中间停顿一下。我尝试过使用waitKey,等待用户按下ESC,但它似乎不起作用。importnumpyasnpimportcv2img=cv2.imread('image1.jpg',0)cv2.imshow('image',img)#hereitshouldbethepausek=cv2.waitKey(0)ifk==27:#waitforESCkeytoexitcv2.destroyAllWindows()img=cv2.imread('image2.jpg',0)cv2.imshow('image',img)有什么建议吗?提前致谢 最