avatar.jpg

back.jpg

如何合成两个图像如下?
我效果:

我正在尝试从此图像中裁剪一个居中(或不居中)的圆圈:
我从有关堆栈溢出的有关此主题的现有问题中窃取了此代码,但出了点问题:
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而不是裁剪的圆形阵列。我该如何解决?