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は、画像の各行をスキャンして各行を一度に変換するソリューションです。残念ながら、私はこれをPythonに適合させることができませんでした。

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] 

は、だから、これを使用することができます。

関連する問題