Page 165 - python
P. 165

139




                    ax1.imshow(img2)

                    ax1.set_title('Invert Color')
                    plt.show()

                   ผลลัพธ :





















                                      ภาพประกอบที่ 11.8 แสดงการกลับสีภาพ (Invert color)


                          ตัวอยางที่ 11.5 คําสั่ง %pylab inline เปนการขอใช numpy และ matplotlib คําสั่ง from
                   PIL import Image สําหรับจัดการภาพดวยไลบรารี่ PIL และ import cv2 อิมพอรตไลบรารี่ opencv
                   คําสั่ง wget สําหรับอานภาพจากเว็บ ตัวแปร img1 เก็บภาพ lena และคําสั่ง img2 สรางภาพสีขาวขนาด
                   เทากบภาพลีนา  การวนเขาไปในภาพในแนวนอนและแนวตั้ง จากนั้นอานคาสีดวยคําสั่ง r,g,b  =
                        ั
                                    ั
                   getpixel(พิกัดx, พิกดy)) จากนั้นนําสีแดง, เขียว และน้ําเงินมาลบดวย 255  แลว putpixel ลงไปในตัว
                                                   
                                        ี
                                        ่
                   แปร img2 ดวยคาสีใหมทผานการลบดวย 255 นําไปพล็อตภาพจะไดดังภาพดานบน

                   11.9 การเขียนโปรแกรมเพื่อปรับคาแกมมาของภาพ

                                          ั
                                   ื
                                                     ี
                                                                                
                                                  

                          gamma คอการปรบโทนสีเขมมคาระหวาง 0 - 1  สมการชดเชยคาแกมมา คือ    =   


                              =     และ    =   




                   ตัวอยางที่ 11.6 การปรับคาแกมมา
                    %pylab inline
                    from PIL import Image
                    img1 = Image.open("lena.jpg").convert("RGB")
                    gamma = 0.8
                    img2 = Image.new("RGB", (img1.size[0], img1.size[1]), "white")
                    for x in range(0, img1.size[0]):
                         for y in range(0, img1.size[1]):

                            r,g,b = list(img1.getpixel((x,y)))
   160   161   162   163   164   165   166   167   168   169   170