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))
正确程序为:
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位的整数倍。)这里是按照我的理解的,貌似错了,修正一下,最近