添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
没人理的大熊猫  ·  dev-server: bypass + ...·  4 月前    · 
非常酷的钥匙扣  ·  [Maven] ...·  5 月前    · 
多情的自行车  ·  最新投资讲座 | ...·  8 月前    · 
谦和的电影票  ·  【游戏行业科普 · ...·  10 月前    · 
好帅的米饭  ·  2万字攻略 | ...·  1 年前    · 
QImage: argument 1 has unexpected type 'memoryview' arguments did not match any overloaded call
最新推荐文章于 2023-09-27 12:27:38 发布
最新推荐文章于 2023-09-27 12:27:38 发布 阅读量 5.2k
raceback (most recent call last):
  File "E:/CV/Wang/main.py", line 42, in <module>
    w = MyMain()
  File "E:/CV/Wang/main.py", line 32, in __init__
    qt_img = QImage(img.data, width, height, QImage.Format_RGB888)
TypeError: arguments did not match any overloaded call:
  QImage(): too many arguments
  QImage(QSize, QImage.Format): argument 1 has unexpected type 'memoryview'
  QImage(int, int, QImage.Format): argument 1 has unexpected type 'memoryview'
  QImage(str, int, int, QImage.Format): argument 1 has unexpected type 'memoryview'
  QImage(sip.voidptr, int, int, QImage.Format): argument 1 has unexpected type 'memoryview'
  QImage(str, int, int, int, QImage.Format): argument 1 has unexpected type 'memoryview'
  QImage(sip.voidptr, int, int, int, QImage.Format): argument 1 has unexpected type 'memoryview'
  QImage(List[str]): argument 1 has unexpected type 'memoryview'
  QImage(str, format: str = None): argument 1 has unexpected type 'memoryview'
  QImage(QImage): argument 1 has unexpected type 'memoryview'
  QImage(Any): too many arguments

通过cv2读取图片,然后截取其中一部分,在Qlabel里面显示出来。

直接通过把cv2读取的图片显示出来,是没有问题的,代码如下:

img = cv2.imread('./runner.jpg')
cv2.cvtColor(img, cv2.COLOR_BGR2RGB, img)
qt_img = QImage(img.data, width, height, QImage.Format_RGB888)
new_img = qt_img.scaled(self.pic.width(), self.pic.height())
self.label.setPixmap(QPixmap.fromImage(new_img))

当我打算截取一部分的时候,出现了上述错误,截取代码如下:

img = cv2.imread('./runner.jpg')
img = img[300:, 300:, :]
cv2.cvtColor(img, cv2.COLOR_BGR2RGB, img)
qt_img = QImage(img.data, width, height, QImage.Format_RGB888)
new_img = qt_img.scaled(self.pic.width(), self.pic.height())
self.label.setPixmap(QPixmap.fromImage(new_img))

解答: https://stackoverflow.com/questions/55468135/what-is-the-difference-between-an-opencv-bgr-image-and-its-reverse-version-rgb-i

正确程序为:

img = cv2.imread('./runner.jpg')
img = img[300:, 300:, :]
cv2.cvtColor(img, cv2.COLOR_BGR2RGB, img)
qt_img = QImage(img.data.tobytes(), width, height, QImage.Format_RGB888)
new_img = qt_img.scaled(self.pic.width(), self.pic.height())
self.label.setPixmap(QPixmap.fromImage(new_img))
源码位置在 D:\workspace\Anaconda\envs\pytorch\Lib\site-packages\libs\canvas.py 的第530行。在以下三行改变 drawRect,drawLine 的参数为 int。根据报错可知是参数不匹配,只要找到源码的位置修改内容即可。 self.search.click ed .connect(self.search_information(e))在使用connect时,报 TypeError : argument 1 has unexpected type 'None Type '错误,解决办法:self.search.click ed .connect(lambda:self.search_information(e))我个人理解是,当用c... 使用PyQt5写窗体时,链接内置打开文件槽函数出现 TypeError : getOpenFileName(parent: QWidget = None, caption: str = ‘’, directory: str = ‘’, filter: str = ‘’, initialFilter: str = ‘’, options: Union[QFil eD ialog.Options, QFile... 博主之前的写的的pyqt5的代码,在进行bug优化时,突然就爆出 TypeError : arguments did not match any over load ed call:错误。 将图像矩阵数组从OpenCV的 MAT 类型转换为Qt的 Q Image 类型的简单 C++ 函数。 我使用了 openCV 的 v2.4.5 版本和 QT v4.5,但可能适用于其他版本。 库可以添加到工作目录并包含在项目中。 当前仅使用 RGB 矩阵阵列运行。 需要使用Pyqt5来显示MRI图片(240*240*155)的三视图,使用三个QGraphics View 显示, 在实现过程中发现几个问题: 1、先使用Nibabel读入图像数组,拆成三个维度的图像,再使用 depth_ image = image [:, :, img_index[2]] img = depth_ image frame = PyQt5.QtGui.Q Image (img, img... https://blog.51cto.com/tracey2076/539690 嗯,这个Q Image 的问题研究好久了,有段时间没用,忘了,已经被两次问到了,突然有点解释不清楚,我汗颜,觉得有必要重新总结下了,不然无颜对自己了。 图像的数据是以字节为单位保存的,每一行的字节数必须是4的整数倍,不足的补0。 (因为我们使用的是32操作系统,因此数据是按照32位对齐的,所以每行的字节数必须是4的整数倍也就是说每行的数据位必须是32位的整数倍。)这里是按照我的理解的,貌似错了,修正一下,最近