如何解决这个问题? cv2.error:OpenCV(4.1.2)...错误:(-215:断言失败)函数'cv :: resize'

时间:2020-07-29 20:18:44

标签: numpy opencv operating-system rotation data-augmentation

我正在尝试对文件夹中的多个图像进行旋转,但是当我将fx,fy的值大于0.2放入调整大小函数时出现此错误 ( cv2.error:OpenCV(4.1.2)... error:(-215:Assertion failed)!ssize.empty()in function'cv :: resize'

尽管,当我尝试旋转单个图像并将fx和fy的值设置为0.5时,它仍然可以正常工作。

有一种方法可以解决此问题,因为逐个增加图像非常忙吗?加上通过此处附带的代码旋转的多张图像,fx和fy值等于0.2,它们具有不希望的尺寸,即照片非常小,并且质量也降低了。

旋转多张图片的代码部分如下:

for imag in os.listdir(source_folder):
img = cv2.imread(os.path.join(source_folder,imag))
img = cv2.resize(img, (0,0), fx=0.5, fy=0.5)
width = img.shape[1]
height =  img.shape[0]
M = cv2.getRotationMatrix2D((width/2,height/2),5,1.0)
rotated_img = cv2.warpAffine(img,M,(img.shape[1],img.shape[0]))
cv2.imwrite(os.path.join(destination_right_folder, "v4rl" + str(a) + '.jpg') , rotated_img)
#cv2.imshow("rotated_right",rotated_img)
#cv2.waitKey(0)
a += 1

1 个答案:

答案 0 :(得分:0)

在读取图像后添加检查以查看其是否为无:

img = cv2.imread(os.path.join(source_folder,imag))
if img is None: continue

调用cv2.resize()函数时发生错误。也许正在读取不是图像的文件。