2017-03-15 1 views
0

QImage를 가지고 있고 비트를 그레이 스케일로 변환해야합니다.python - 좋은 성능의 QImage를 회색조로 변환하십시오.

지금 미안 그냥 RGB의 평균을 계산하고 픽셀로를 작성하는 속성 :

Img = QtGui.QImage(300,600, QtGui.QImage.Format_RGB888) 

    for x in range(299): 
     for y in range(599): 
      gray = self.npPixmap[y][x] * 256 
      Img.setPixel(x, y, QtGui.QColor(gray,gray,gray).rgb()) 

이 1,5s 주위를 필요로하고 내가 반 시간 싶습니다.

여기에서 c++ question은 그림의 각 줄을 스캔하고 각 줄을 한 번에 변환하는 솔루션입니다. 불행하게도 저는 이것을 파이썬에 적용 할 수 없었습니다.

reinterpret_cast<QRgb*>(scan + jj*depth) 

감사합니다.

답변

0

내 이미징 플랫폼의 경우 ITU-R 601-2 루마 변환을 사용하여 컬러 이미지를 그레이 스케일 이미지로 변환합니다. 인간의 눈은 녹색 다음 빨간색과 파란색에 가장 민감하기 때문에 평균을 사용하지 않습니다. 이미지가 NumPy와 배열로로드되면 나는 다음을 수행 : 당신이 PyQt는에서 배열을 가져온 다음 다시 배열을 설정하면

Images = 0.299*Images[:,:,0]+0.587*Images[:,:,1]+0.114*Images[:,:,2] 

그래서 당신은이를 사용할 수 있습니다.

관련 문제