Page 164 - python
P. 164

138




                                         ํ
                                                                                                 ํ
                           ั
                                  ่
                                  ี
                                                                       
                          ตวอยางท 11.4 คาสัง %pylab inline เปนการขอใช numpy และ mathplotlib คาสัง wget
                                                                                                   ่
                                           ่
                   ทําการโหลดภาพ lena.jpg จากเว็บ dsdi.msu.ac.th จากนั้นอิมพอรต cv2 เปนไลบรารี่ดาน computer
                   vision  ตัวแปร img ทําการโหลดภาพ lena ดวยคําสั่ง imread() และตัวแปร blue, gree, red เปนสีที่ได 
                   จากการแยกสีจากตัวแปร img ซึ่งเปนภาพ lena  ตัวแปร black สรางขึ้นสําหรับคาสีดําขนาดเทากับภาพ
                                        
                                       ี
                          ่
                          ื
                               ํ
                                                                     ื
                                                                           ี
                   lena เพอจะนามารวมสดวยคําสัง merge() ตวแปร Blue คอรวมส blue,black,black  ตัวแปร Green
                                                         ั
                                              ่
                   คือการรวมสี black, green, black และตัวแปร Red เปนการรวมสี black, black, red เมื่อรวมภาพแลว
                   นํามาแสดงผลไดผลลัพธดังตัวอยางดานบน

                              ั
                   11.8 การกลบสีภาพ (Invert Color)
                                                                ํ
                                                                ้
                                                                   ิ
                          โมเดลสีแบบ RGB ประกอบดวยสีแดง เขียว นาเงน โดยแตละสีใช 8 บิต ทาใหมความแตกตางกน
                                                                                       ํ
                                                                                          
                                                                                            ี
                                                                                                        ั
                   256 ความแตกตาง (0-255) สูตรสําหรับการกลับสี (Invert Color) คือ  R′=256−1−R) , G′=256−1−G)
                   และ B′=256−1−B)
                          ไลบรารี่ Pillow ใชสําหรับการจัดการภาพเปนอีกหนึ่งไลบรารี่ที่อนุญาตใหเขาถึงจุดสีภายในภาพ
                   ดวยคําสั่ง putpixel() และ getpixel()ติดตั้งดวยคําสั่ง !pip install Pillow

                   ตัวอยางที่ 11.5 การกลับสีภาพ (invert color)
                    %pylab inline
                    from PIL import Image
                    import cv2

                    !wget "http://dsdi.msu.ac.th/articles/programming/lena.jpg"
                    img1 = Image.open("lena.jpg").convert("RGB")
                    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 = img1.getpixel((x,y))
                            red = 255-r
                            green = 255-g

                            blue = 255-g
                            img2.putpixel((x,y),(red,green,blue))

                    fig = plt.figure(figsize=(10,5))

                    ax = fig.add_subplot(1,2,1)
                    ax.imshow(img1)
                    ax.set_title('Original')


                    ax1 = fig.add_subplot(1,2,2)
   159   160   161   162   163   164   165   166   167   168   169