out = im.point(function)
ตัวอย่างเช่น หากเราต้องการปรับค่า contrast ของรูป ซึ่งทำได้โดยการคูณแต่ละพิกเซลด้วยค่าคงที่ค่าหนึ่ง เช่น 1.5 ก็จะใช้คำสั่ง
out = im.point(lambda i: i*1.5)
(หมายเหตุ lambda เป็นเทคนิคการเขียนฟังก์ชันเฉพาะกิจของ python เรียกว่า anonymous functions เพื่อที่เราจะไม่ต้องเขียนฟังก์ชันใหม่แยกออกมา)
ตัวอย่างผลลัพธ์ที่เราต้องการ
โค้ดของโปรแกรมก็เพิ่มเติมจากเดิมดังนี้
เมนู
processMenu.add_command(label="Contrast",command=self.imgContrast)
method
self.im = self.im.point(lambda i: i*1.5)
self.showImage()
หมายเหตุ
1. คำสั่ง Image.point มีผู้ระบุไว้ว่าเร็วกว่าคำสั่ง Image.load ในการประมวลผลพิกเซล หากมีโอกาสจะได้ทดลองวัดความเร็วเปรียบเทียบกันครับ
2. หากต้องการแยกเป็นฟังก์ชันออกมาต่างหาก ก็ทำได้โดย
def myContrast(self,i):
return i*1.5
def imgContrast(self):
self.im = self.im.point(self.myContrast)
self.showImage()
No comments:
Post a Comment