Pythonで画像の色合い色調を変化させる!

Pythonで画像の色合い色調を変化させてみました。フィルターみたいな感じです。
もちろん、アプリケーションフレームワークとしてPyQtを使っています。

QGraphicsColorizeEffect()を使うことで、画像に色味をかけることができます。
そんで、このクラスにはStrength()があるのですが、これはフィルターの強さです。
デフォルトは1で、0.5とか0.3とかみたいに指定することができます。

ちなみに、QPixmap.fromImageで画像は読み込んでいます。

なんかこれぞ画像処理って感じでいいですね。私はにわかですけど・・・(*´﹃`*)

以下はソース
import sys
from PyQt4 import QtGui, QtCore, uic
from Foo import Ui_MainWindow

class Sample(QtGui.QMainWindow): 
    def __init__(self, parent = None):
        super(Sample, self).__init__(parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.activateWindow()

    def paintEvent(self,event):
        painter = QtGui.QPainter()
        painter.begin(self)
        painter.setPen(QtGui.QColor('#FFFFFF'))
        painter.setBrush(QtCore.Qt.white)
        painter.drawRect(event.rect())

        effect = QtGui.QGraphicsColorizeEffect()
        effect.setColor(QtGui.QColor("Magenta"))
        effect.setStrength(0.4)

        scene = QtGui.QGraphicsScene()
        item = QtGui.QGraphicsPixmapItem()
        item.setPixmap(QtGui.QPixmap.fromImage(QtGui.QImage('./sample02.jpg')))     
        item.setGraphicsEffect(effect);
        scene.addItem(item)
        
        target = QtCore.QRectF(0.0, 0.0, 
float(self.width()), float(self.height())) source = QtCore.QRectF(0.0, 0.0,
float(scene.width()), float(scene.height())) scene.render(painter, target, source) painter.end() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) sample = Sample() sample.show() sys.exit(app.exec_())


オリジナルの画像はこれ
sample02

実行されたアプリケーション(マゼンタの場合)
42
実行されたアプリケーション(赤の場合)
45
実行されたアプリケーション(青の場合)
53