首页 > 解决方案 > 我尝试使用 openv 将 2 个图像转换为 ndarrays 并使用它来训练回归模型,但我一直收到错误

问题描述

这是我写的代码:(注意:image1.jpg 和 image2.jpg 具有相同的尺寸,但不同的照片)

import cv2,numpy as np
from sklearn import svm
im = cv2.imread("image1.jpg")
im1d = np.reshape(im,(1609200))#reshape to 1d from (596,900,3) because in svm.SVR(X,y), y must =1d  

cdata = cv2.imread('image2.jpg')
rdata = np.reshape(cdata,(596,2700))#reshape to 2d from (596,900,3)because in svm.SVR(X,y),X must =2d  

regr = svm.SVR()
regr.fit(rdata, im1d)
i =regr.predict(rdata)#rdata is a part of training data just wanted to see if the code works 
b = np.reshape(i,(596,900,3))#reshape to 3d so it can be viewed as a photo
cv2.imshow(b)

我得到的错误是:

Traceback (most recent call last):
  File "D:\ Folder\Python\module properties\img.py", line 10, in <module>
    regr.fit(rdata, im1d)
  File "C:\Users\Admin1\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\svm\_base.py", line 169, in fit
    X, y = self._validate_data(X, y, dtype=np.float64,
  File "C:\Users\Admin1\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\base.py", line 433, in _validate_data
    X, y = check_X_y(X, y, **check_params)
  File "C:\Users\Admin1\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\utils\validation.py", line 63, in inner_f
    return f(*args, **kwargs)
  File "C:\Users\Admin1\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\utils\validation.py", line 831, in check_X_y
    check_consistent_length(X, y)
  File "C:\Users\Admin1\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\utils\validation.py", line 262, in check_consistent_length
    raise ValueError("Found input variables with inconsistent numbers of"
ValueError: Found input variables with inconsistent numbers of samples: [596, 1609200]

我认为这意味着 rdata 和 im1d 没有相同数量的样本,但我不知道如何解决它

标签: pythonarraysimagenumpyopencv

解决方案


推荐阅读