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)