相关疑难解决方法(0)

6
推荐指数
1
解决办法
2087
查看次数

从图像中裁剪圆形缩略图的最简单方法是什么?

我正在尝试从此图像中裁剪一个居中(或不居中)的圆圈:

在此处输入图片说明

我从有关堆栈溢出的有关此主题的现有问题中窃取了此代码,但出了点问题:

import cv2

file = 'dog.png'

img = cv2.imread(file)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
circle = cv2.HoughCircles(img,
                          3,
                          dp=1.5,
                          minDist=10,
                          minRadius=1,
                          maxRadius=10)
x = circle[0][0][0]
y = circle[0][0][1]
r = circle[0][0][2]

rectX = (x - r) 
rectY = (y - r)
crop_img = img[rectY:(rectY+2*r), rectX:(rectX+2*r)]
cv2.imwrite('dog_circle.png', crop_img)
Run Code Online (Sandbox Code Playgroud)

输出:

Traceback (most recent call last):
  File "C:\Users\Artur\Desktop\crop_circle - Kopie\crop_circle.py", line 14, in <module>
    x = circle[0][0][0]
TypeError: 'NoneType' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)

cv2.HoughCircles()似乎产生None而不是裁剪的圆形阵列。我该如何解决?

python opencv image crop image-processing

4
推荐指数
1
解决办法
2184
查看次数

标签 统计

python ×2

crop ×1

image ×1

image-processing ×1

opencv ×1

pillow ×1