我得到了这个非常简单的代码来遍历一个目录,对每个图像应用精明的边缘检测,并将每个结果保存到不同的目录:
import cv2, os
directory = os.listdir('beard/')
for image in directory:
cv2.imwrite('canny-esult/' + image + '_canny.jpg', cv2.Canny(cv2.imread('bear/' + image), 100, 200))
但这是我得到的错误:
cv2.imwrite('canny-esult/' + image + '_canny.jpg', cv2.Canny(cv2.imread('bear/' + image), 100, 200))
cv2.error: OpenCV(4.5.5) /io/opencv/modules/imgcodecs/src/loadsave.cpp:801: error: (-215:Assertion failed) !_img.empty() in function 'imwrite'
cv2.imread('bear/'+image)
中有一个简单的打字错误。我想您想从cv2.imread('beard/'+image)
读取文件。此外,您可能希望使用image[:-4]
从文件名中修剪扩展部分,以避免文件名类似file.jpg_canny.jpg
的情况。
工作代码:
import cv2, os
directory = os.listdir('beard/')
for image in directory:
cv2.imwrite('canny-esult/' + image[:-4] + '_canny.jpg', cv2.Canny(cv2.imread('beard/' + image), 100, 200))
我发现了一些错误的
熊->胡须
cv2.imwrite('canny-esult/'+image+'_canny.jpg',cv2.canny(cv2.imread('beard/'+image(,100200(
断言215声明图像大小为0。你只需在定义图像路径时键入一个类型,这就是为什么你无法读取图像,然后你试图调整图像的大小,因为没有图像,所以会出现错误。只需重新检查您的图像路径,一旦它正确,它就会工作。