这是我得到的错误。
错误:OpenCV(4.1.0)C:\ projects \ opencv-python \ opencv \ modules \ imgproc \ src \ resize.cpp:3718:错误:(-215:断言失败)!ssize.empty()在函数'cv :: resize'
已经检查了损坏的文件。
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]))
答案 0 :(得分:1)
Cat [i] 正在做什么,
如果文件夹中有1000张图像,则必须列出图像目录(os.listdir
)并通过循环应用功能逐一读取它们。
除此之外,您的压缩功能是正确的并且可以正常工作, 我建议先进行灰度转换,然后再应用调整大小,这可能会导致更好的插值。
答案 1 :(得分:1)
通常,此问题是由于调整图像大小而引起的,我只是应用try and 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)
答案 2 :(得分:0)
这是无法从相机或电影文件接收到的错误。确保视频文件名与代码相同,并且位于同一目录中。
答案 3 :(得分:0)
答案 4 :(得分:0)
发生这种情况有以下两个原因:
解决方案:重新检查图片路径,尤其是反斜杠和点。
解决方案:重新下载图片或将其删除。
答案 5 :(得分:0)
那是因为 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")]
答案 6 :(得分:-1)
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)