การประมวลผลภาพด้วย OpenCV
OpenCV (Open Source Computer Vision) เป็นไลบรารีโปรแกรมมิ่งโอเพนซอร์สที่พัฒนาสำหรับ machine learning และ computer vision โดยเฉพาะ มันให้โครงสร้างพื้นฐานทั่วไปสำหรับการทำงานบนแอปพลิเคชัน computer vision และเร่งการใช้ machine learning ในผลิตภัณฑ์เชิงพาณิชย์
มีอัลกอริทึมที่เพิ่มประสิทธิภาพมากกว่า 2,500 ตัวสำหรับ computer vision และ machine learning ทั้งแบบคลาสสิกและ state-of-the-art ด้วยอัลกอริทึมมากมาย ทำให้ใช้ไลบรารีได้หลายวัตถุประสงค์ รวมถึง การตรวจจับและจดจำใบหน้า, ระบุวัตถุ, จำแนกการกระทำของมนุษย์ในวิดีโอ, ติดตามการเคลื่อนไหวของกล้อง, รวมภาพเพื่อสร้างภาพความละเอียดสูงของฉากทั้งหมด และอื่นๆ อีกมาก
ในบทความนี้จะอธิบายวิธีใช้ไลบรารี OpenCV และ Python เพื่ออ่านและแสดงภาพ ซึ่งใช้โมดูล cv2 และ Numpy
สามารถดาวน์โหลดโมดูล numpy จาก Python Package Index (PyPI):
$ pip install numpy
อ่านภาพ
ใช้ฟังก์ชัน cv2.imread() เพื่ออ่านภาพ ภาพควรวางในไดเรกทอรีทำงานปัจจุบัน มิฉะนั้นต้องระบุเส้นทางแบบสัมบูรณ์
import numpy as np
import cv2
# Load an color image in grayscale
img = cv2.imread('Top-bike-wallpaper.jpg', 0)
แสดงภาพ
เพื่อแสดงภาพในหน้าต่าง ใช้ฟังก์ชัน cv2.imshow():
# Display the image
cv2.imshow('image', img)
# key binding function
cv2.waitKey(0)
# Destroy all windows we created earlier
cv2.destroyAllWindows()
เมื่อรันโค้ดข้างต้น สกรีนชอตของหน้าต่างจะมีลักษณะดังนี้:

เขียนภาพ
ใช้ฟังก์ชัน cv2.imwrite() เพื่อบันทึกภาพ
อาร์กิวเมนต์แรกคือชื่อไฟล์ อาร์กิวเมนต์ที่สองคือภาพที่ต้องการบันทึก
cv2.imwrite('messigray.png', img)
สรุป:
import numpy as np
import cv2
# Read the Image
# Load an color image in grayscale
img = cv2.imread('Top-bike-wallpaper.jpg', 0)
# Display the image
cv2.imshow('image', img)
# key binding function
k = cv2.waitKey(0)
# wait for ESC key to exit
if k == 27:
cv2.destroyAllWindows()
# wait for 's' key to save and exit
elif k == ord('s'):
cv2.imwrite('myBike.jpg', img)
cv2.destroyAllWindows()
กด 's' เพื่อบันทึกภาพ หรือกด 'ESC' เพื่อออกโดยไม่บันทึก
ใช้ Python Imaging Library (PIL)
Python Imaging Library (PIL) เป็นไลบรารีจัดการภาพใน Python ใช้ pip ติดตั้ง PIL:
$ pip install Pillow
from PIL import Image, ImageFilter
# Read image
im = Image.open('myBike.png')
# Display image
im.show()
# Applying a filter to the image
im_sharp = im.filter(ImageFilter.SHARPEN)
# Saving the filtered image to a new file
im_sharp.save('another_Bike.jpg', 'JPEG')
ผลลัพธ์

ภาพถูกบันทึกในตำแหน่งเริ่มต้นของฉัน คือ ไดเรกทอรีทำงานปัจจุบัน และสกรีนชอตของหน้าต่างจะแสดงภาพของเรา