Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การประมวลผลภาพใน Python?


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()

ผลลัพธ์

การประมวลผลภาพใน Python?

ตามตัวแปรข้างต้น 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()

ภาพจะเปลี่ยนไปดังนี้:

การประมวลผลภาพใน Python?

การแปลงเป็นภาพระดับสีเทา − convert()

เราสามารถสร้างภาพระดับสีเทาจากภาพสีเดิมของเราได้

>>> TajMahal_gray = Image.open('TajMahal.jpg').convert('L')
>>> TajMahal_gray.show()

โดยที่ "L" ย่อมาจาก 'luminous'

การประมวลผลภาพใน Python?


ตัวอย่างด้านบนมาจากไลบรารี 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()

ผลลัพธ์

การประมวลผลภาพใน Python?

อีกวิธีในการเขียนโปรแกรมด้านบนด้วยการขีด/บรรทัดเพื่อทำเครื่องหมายภาพ

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()

ผลลัพธ์

การประมวลผลภาพใน Python?