函数imsh出错

2024-06-09 12:22:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用HOG+SVM方法制作一个定制的对象检测器(椅子)。我的行动计划是:

  • 循环浏览我文件夹中的图像
  • 读取并调整大小
  • 使用弓形计算机()功能
  • 然后将它们存储到一个数据文件中

如果一切顺利,我的SVM分类器会处理剩下的。你知道吗

理想情况下,它将能够通过我的网络摄像头识别显示的椅子。你知道吗

下面是我尝试使用的代码(仅初始位):

import cv2
import os
import numpy as np

def loadimg():

    for i in range(0,19):
        image = cv2.imread(str(i))
        cv2.imshow("img",image)
        (winW, winH) = (500, 500)
        r = 128.0 / image.shape[1]
        dim = (128, int(image.shape[0] * r))
        img = cv2.resize(image, dim, interpolation = cv2.INTER_AREA)
    return img

def hoggify(img):
    imeg = hog.compute(img)
    return imeg

for fn in os.listdir('/Users/munirmalik/cvprojek/cod'):
loadimg()
hoggify(imeg)
np.savetxt('data.txt')

这就是我得到的错误:

cv2.error: /Users/munirmalik/opencv/modules/highgui/src/window.cpp:304: error: (-215) size.width>0 && size.height>0 in function imshow

我搜索了这个错误,它说imread()没有读取我的图像,我假设这与loadimg()函数中的for循环有关。你知道吗

有人能帮帮我吗?另外,如果你能想出一个更好的方法来做这件事,请让我知道:)


Tags: 方法in图像imageimportimgforos
1条回答
网友
1楼 · 发布于 2024-06-09 12:22:14

这就是你代码中的错误

   for i in range(0,19):
        image = cv2.imread(str(i))

这转化为cv2.imread("0")cv2.imread()函数需要传递一个像“path/to”这样的图像地址/文件段". 我不确定图像在文件结构中是如何排列的,但是cv2.imread()的参数应该以JPG、PNG等文件扩展名结尾

根据OP的意见,代码应更改为:

   for i in range(0,19):
        image = cv2.imread(r"/Users/munirmalik/cvprojek/cod/chairs/" + str(i)+ ".jpg")

相关问题 更多 >