img = cv2.resize(img, size)报错
时间: 2023-10-27 22:05:05 浏览: 269
该报错可能是由于以下原因之一引起的:
1. 没有导入OpenCV库。请确保您已经成功导入OpenCV库,并且命名正确。
2. size变量未定义。请确保您已经定义了size变量,并且其包含了所需的宽度和高度值。
3. img变量未定义。请确保您已经定义了img变量,并且其包含了要调整大小的图像。
4. size参数值不正确。请确保您的size参数值是一个元组,其中包含了要调整的宽度和高度值。
5. 图像路径错误。请确保您已经正确指定了要调整大小的图像的路径。
请检查以上问题,并尝试解决它们以解决报错问题。
相关问题
img = cv2.resize(img, (1000, 1000))
这段代码使用 `cv2.resize()` 函数将图像 `img` 的大小调整为 1000x1000 像素。如果你遇到了 `cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\resize.cpp:4062: error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'` 这样的错误,那么可能是因为调整大小的目标大小有误。
请确保你的 `img` 图像不是空的(即 `empty()`),并且输入的目标大小 `(1000, 1000)` 是正确的。如果你想调整图像大小为其他尺寸,可以将目标大小替换成其他值。例如,如果你想将图像大小调整为 800x800,可以使用以下代码:
```python
img = cv2.resize(img, (800, 800))
```
需要注意的是,`cv2.resize()` 函数可能会改变图像的长宽比,因此在调整图像大小之前,你需要确保了解自己的数据和调整大小的方法,以避免失真或形变。
class classify_system(QMainWindow,Ui_MainWindow): def __init__(self,parent=None): super(classify_system,self).__init__(parent) self.setupUi(self) #将输入图片按钮,pushButton与openimage关联起来 self.pushButton.clicked.connect(self.openimage) self.label_2.setAlignment(Qt.AlignCenter)#图像居中显示 def openimage(self): name,type=QFileDialog.getOpenFileName(self,"打开图片","","*.jpg;;*.png;;All Files(*)") img=cv2.imread(name) img=cv2.resize(img,(400,400),interpolation=cv2.INTER_CUBIC) qimg=qimage2ndarray.array2qimage(img) self.label_2.setPixmap(QPixmap(qimg)) self.label_2.show() img=img.astype('float')/255.0 #224*224满足模型输入要求 img=cv2.resize(img,(224,224),interpolation=cv2.INTER_CUBIC) img==np.expand_dims(img,axis=0)#添加尺寸,满足模型输入需求 MobileNet=tf.keras.applications.MobileNet(include_top=True,weights='imagenet') result=MobileNet.predict(img)#模型预测 #获得预测结果 result=tf.keras.applications.imagenet_utils.decode_predictions(result,top=1) predictClass=result[0][0][1] predictProb=result[0][0][2] print(predictClass) print(predictProb)
在你的代码中,有一个小错误,可能会导致模型的输入不正确。具体来说,这一行:
```
img==np.expand_dims(img,axis=0)#添加尺寸,满足模型输入需求
```
应该是:
```
img=np.expand_dims(img,axis=0)#添加尺寸,满足模型输入需求
```
这个错误可能是因为你想使用 `=` 赋值,但是写成了 `==`,因此导致了错误。这会导致 `img` 的值没有被更改,而是仍然是原来的值。
另外,你还需要将 `img` 转换为浮点类型,以便它在归一化时可以被正确处理。因此,你需要将这一行:
```
img=img.astype('float')/255.0
```
放在这一行后面:
```
img=cv2.resize(img,(400,400),interpolation=cv2.INTER_CUBIC)
```
这样,整个 `openimage` 函数应该像这样:
```
def openimage(self):
name,type=QFileDialog.getOpenFileName(self,"打开图片","","*.jpg;;*.png;;All Files(*)")
img=cv2.imread(name)
img=cv2.resize(img,(400,400),interpolation=cv2.INTER_CUBIC)
img=img.astype('float')/255.0
img=cv2.resize(img,(224,224),interpolation=cv2.INTER_CUBIC)
img=np.expand_dims(img,axis=0)
MobileNet=tf.keras.applications.MobileNet(include_top=True,weights='imagenet')
result=MobileNet.predict(img)
result=tf.keras.applications.imagenet_utils.decode_predictions(result,top=1)
predictClass=result[0][0][1]
predictProb=result[0][0][2]
print(predictClass)
print(predictProb)
qimg=qimage2ndarray.array2qimage(img)
self.label_2.setPixmap(QPixmap(qimg))
self.label_2.show()
```
这样应该可以解决你的问题。