I'm trying to convert QPixmap image to grayscale. However, I got an error for all tried solution.
The first try:
def convertCv2ToQimage(self, cv2image):
height, width = cv2image.shape
return QtGui.QImage(cv2image.copy().data, width, height, width, QtGui.QImage.Format_Grayscale8)
result = pixmap.copy(r)
Q_image = result.toImage()
raw_img = cv2.imread(Q_image)
gray_img = cv2.cvtColor(raw_img, cv2.COLOR_BGR2GRAY)
final_result = self.convertCv2ToQimage(gray_img)
pixmap = QtGui.QPixmap.fromImage(final_result)
self.Changed_view.emit(pixmap)
Error :
TypeError: bad argument type for built-in operation.
The second try:
result = pixmap.copy(r)
Q_image = QtGui.QPixmap.toImage(result)
qimage = QtGui.QImage(Q_image, Q_image.width, Q_image.height, QtGui.QImage.Format_Grayscale8)
pixmap = QtGui.QPixmap.fromImage(qimage)
self.Changed_view.emit(pixmap)
Error :
TypeError: arguments did not match any overloaded call: QImage():
too many arguments QImage(QSize, QImage.Format): argument 1 has
unexpected type 'QImage' QImage(int, int, QImage.Format): argument 1
has unexpected type 'QImage' QImage(bytes, int, int, QImage.Format):
argument 1 has unexpected type 'QImage' QImage(sip.voidptr, int,
int, QImage.Format): argument 1 has unexpected type 'QImage'
QImage(bytes, int, int, int, QImage.Format): argument 1 has unexpected
type 'QImage' QImage(sip.voidptr, int, int, int, QImage.Format):
argument 1 has unexpected type 'QImage' QImage(List[str]): argument
1 has unexpected type 'QImage' QImage(str, format: str = None):
argument 1 has unexpected type 'QImage' QImage(QImage): too many
arguments QImage(Any): too many arguments