![](/img/trans.png)
[英]OpenCV(4.1.2) error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'
[英]error: OpenCV(4.1.0) error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'
这是我得到的错误:
错误:OpenCV(4.1.0) C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:3718: 错误: (-215:Assertion failed) !ssize.empty() in function 'cv ::调整大小'
已检查损坏的文件。
cat
是一个包含 1000 个图像 (RGB) 的数组。
我正在尝试将这些图像压缩为(50,50)灰度。
def greyscale_compress(img):
new_img = cv2.resize(img, (50,50))
img_gray = cv2.cvtColor(new_img, cv2.COLOR_BGR2GRAY)
return img_gray
cat_bin = []
for i in range(0, 100):
cat_bin.append(greyscale_compress(cat[i]))
通常这个问题是由于调整图像大小而发生的,我只是应用 try 和 catch 语句来调整图像大小,以便任何错误处理。 它工作正常,没有出现与形状相关的错误。
img=cv2.imread(filename)
print(img)
try:
img = cv2.resize(img, (1400, 1000), interpolation=cv2.INTER_AREA)
print(img.shape)
except:
break
height, width , layers = img.shape
size=(width,height)
print(size)
Cat[i]在您的代码中正在做什么,
如果文件夹中有 1000 张图像,则必须列出图像目录( os.listdir
)并通过循环应用您的函数来逐个读取它们。
除此之外,您的压缩功能是正确的并且工作正常,我建议先转换灰度然后应用调整大小,可能会产生更好的插值。
X = []
count = 0
path = TRAIN_PATH_X
for img in os.listdir(TRAIN_PATH_X):
image = cv2.imread(os.path.join(path, img), cv2.IMREAD_GRAYSCALE)
try:
image = cv2.resize(image, (IMG_HEIGHT, IMG_WIDTH), interpolation=cv2.INTER_AREA)
print(image.shape)
except:
break
X.append([image])
count = count +1
print(count)
那是因为open cv
在给定目录中找不到任何图像
检查您可能错过/
的路径并为安全起见尝试
images = [img for img in os.listdir(image_path) if img.endswith(".jpg")]
或者
images = [img for img in os.listdir(image_path) if img.endswith("anyformat")]
请确保您的img
变量不等于None
这是无法从相机或电影文件接收到的错误。 确保视频文件名与代码相同,并且在同一目录中。
它的发生有以下两个原因:
解决方案:重新检查图像路径,尤其是反斜杠和点。
解决方案:重新下载图像或将其删除。
我遇到了同样的问题,但我解决了。 我有这条路:
/content/drive/MyDrive/skincancer/data/train/benign
我通过在路径末尾添加/
解决了这个问题,如下所示:
/content/drive/MyDrive/skincancer/data/train/benign/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.