Python มีไลบรารี่มากมายสำหรับการประมวลผลภาพ ซึ่งรวมถึง −
-
OpenCV − ไลบรารีการประมวลผลภาพเน้นที่การมองเห็นด้วยคอมพิวเตอร์แบบเรียลไทม์เป็นหลัก โดยมีการใช้งานในหลากหลายพื้นที่ เช่น ชุดเครื่องมือฟีเจอร์ 2D และ 3D การจดจำใบหน้าและท่าทาง การโต้ตอบระหว่างมนุษย์กับคอมพิวเตอร์ หุ่นยนต์เคลื่อนที่ การระบุวัตถุ และอื่นๆ
-
ไลบรารี Numpy และ Scipy − สำหรับการปรับแต่งภาพและการประมวลผล
-
Skikit − จัดเตรียมอัลกอริทึมจำนวนมากสำหรับการประมวลผลภาพ
-
Python Imaging Library (PIL) − เพื่อดำเนินการพื้นฐานกับรูปภาพ เช่น สร้างภาพขนาดย่อ ปรับขนาด หมุน แปลงระหว่างรูปแบบไฟล์ต่างๆ เป็นต้น
ในส่วนนี้เราจะมาดูพื้นฐานของการประมวลผลภาพใน python
ติดตั้งไลบรารีที่จำเป็น
ขั้นตอนแรกของเราคือการติดตั้งไลบรารีที่จำเป็น เช่น openCV, pillow หรืออื่นๆ ที่เราต้องการใช้สำหรับการประมวลผลภาพ เราสามารถใช้ pip เพื่อติดตั้งไลบรารีที่ต้องการได้ เช่น −
$pip install pillow
แค่นั้นแหละ:ตอนนี้เราสามารถเล่นกับภาพลักษณ์ของเราได้แล้ว
รูปภาพ:เปิด() และแสดง()
ขั้นแรก เปิดไฟล์/รูปภาพและแสดง คุณสามารถหมุนภาพในขณะที่แสดงเช่นด้านล่าง -
#Import required library from PIL import Image #Open Image im = Image.open("TajMahal.jpg") #Image rotate & show im.rotate(45).show()
ผลลัพธ์
ตามตัวแปรข้างต้น im เป็นวัตถุหมอน เราสามารถดึงข้อมูลบางอย่างเกี่ยวกับภาพที่เปิดอยู่ได้ -
>>> im <PIL.JpegImagePlugin.JpegImageFile image mode = RGB size = 1000x667 at 0x65AB990< >>> im.size (1000, 667) >>> im.format 'JPEG' >>>
แปลงและบันทึก () รูปภาพ
เราสามารถเปลี่ยนรูปแบบของรูปภาพจากรูปแบบหนึ่งเป็นอีกรูปแบบหนึ่งได้ดังรูปด้านล่าง -
>>> im.save('TajMahal.png')
ตอนนี้ถ้าเราเห็นโฟลเดอร์ เราก็มีภาพเดียวกันในสองรูปแบบที่แตกต่างกัน
ปรับขนาดภาพขนาดย่อ()
เราสามารถเปลี่ยนขนาดของภาพโดยใช้วิธีภาพขนาดย่อ () ของหมอน -
>>> im.thumbnail ((300, 300)) >>> im.show()
ภาพจะเปลี่ยนไปดังนี้:
การแปลงเป็นภาพระดับสีเทา − convert()
เราสามารถสร้างภาพระดับสีเทาจากภาพสีเดิมของเราได้
>>> TajMahal_gray = Image.open('TajMahal.jpg').convert('L') >>> TajMahal_gray.show()
โดยที่ "L" ย่อมาจาก 'luminous'
ตัวอย่างด้านบนมาจากไลบรารี PIL ของ python เราสามารถใช้ไลบรารี่อื่น ๆ เช่น open-cv, matplotlib &numpy สำหรับการประมวลผลภาพ ด้านล่างนี้คือโปรแกรมตัวอย่างบางส่วนเพื่อสาธิตการใช้ไลบรารีที่มีประสิทธิภาพมากสำหรับการประมวลผลภาพ
กำลังแสดงภาพในโทนสีเทา
#Import required library import cv2 import numpy as np from matplotlib import pyplot as plt im = cv2.imread('TajMahal.jpg',cv2.IMREAD_GRAYSCALE) cv2.imshow('image',im) cv2.waitKey(0) cv2.destroyAllWindows()
ผลลัพธ์
อีกวิธีในการเขียนโปรแกรมด้านบนด้วยการขีด/บรรทัดเพื่อทำเครื่องหมายภาพ
import cv2 import numpy as np from matplotlib import pyplot as plt im = cv2.imread('TajMahal.jpg',cv2.IMREAD_GRAYSCALE) plt.imshow(im, cmap = 'gray', interpolation = 'bicubic') # to hide tick values on X and Y axis plt.xticks([]), plt.yticks([]) plt.plot([200,300,400],[100,200,300],'c', linewidth = 5) plt.show()
ผลลัพธ์