Getting Started with Images
วัตถุประสงค์
- สามารถอ่านภาพวิธีการแสดงและวิธีการบันทึกกลับ
- รู้วิธีการใช้ฟังก์เหล่านี้ cv2.imread () cv2.imshow () cv2.imwrite ()
- เรียนรู้วิธีการแสดงภาพที่มี Matplotlib
Read an image
- ใช้ function cv2.imread() ในการอ่านภาพ และภาพควรอยู่ในโฟล์ของการทำงาน
- cv2.IMREAD_COLOR
- cv2.IMREAD_GRAYSCALE
- cv2.IMREAD_UNCHANGED
ดูได้จากโค๊ดด้านล้าง
(ตัวเลขด้านหลังสามารถเปลียนได้ 1,0 หรือ -1 ลองเปลี่ยนดูครับ)
import numpy as np import cv2 # แสดงภาพโทนสีเท่า img = cv2.imread('joy.jpg',0)
Display an image
- การแสดงภาพสามารถใช้ function cv2.imshow()
- อาร์กิวเมนต์แรกเป็นชื่อที่หน้าต่างซึ่งเป็นสตริง อาร์กิวเมนต์ที่สองเป็นภาพของเรา เราสามารถสร้างหน้าต่างตามที่เราต้องการ แต่ต้องมีชื่อที่ต่างกัน
cv2.imshow('image',img) cv2.waitKey(0) cv2.destroyAllWindows()
cv2.waitKey () [อ่านเพิ่มเติม] เป็นฟังก์ชั่นแป้นพิมพ์ อาร์กิวเมนต์ของมันคือเวลาเป็นมิลลิวินาที นอกจากนี้ยังสามารถตั้งค่าในการตรวจสอบจังหวะสำคัญที่เฉพาะเจาะจงเช่นถ้าคีย์ถูกกด ฯลฯ ซึ่งเราจะอธิบายด้านล่าง
cv2.destroyAllWindows() [อ่านเพิ่มเติม] ถ้าเราต้องการแสดงหน้าต่างทั้งหมดที่เราสร้าง สามารถใช้ cv2.destroyWindow () ผ่านชื่อหน้าต่างเป็นอาร์กิวเมนต์
- คุณสามารถปรับขนาดหน้าต่างได้จากฟังก์ชัน cv2.namedWindow ฟังก์ชัน () โดยค่าเริ่มต้นเป็น cv2.WINDOW_AUTOSIZE แต่ถ้าคุณระบุที่จะ cv2.WINDOW_NORMAL คุณสามารถปรับขนาดหน้าต่าง ใช้ในกรณีที่ภาพมีขนาดใหญ่เกินไป
cv2.namedWindow('pic', cv2.WINDOW_NORMAL) cv2.imshow('pic',img) cv2.waitKey(0) cv2.destroyAllWindows()
Write an image
สามารถใช้ฟังก์ชั่น ในการบันทึกภาพได้
อาร์กิวเมนต์แรกคือชื่อไฟล์ อาร์กิวเมนต์ที่สองเป็นภาพที่คุณต้องการบันทึก
cv2.imwrite('joygray.png',img)
นี้จะบันทึกภาพในรูปแบบ PNG ในไดเรกทอรีการทำงาน ดูการใช้งานจากโค๊ดด้านล้าง
import numpy as np import cv2 img = cv2.imread('joy.jpg',0) cv2.imshow('image',img) k = cv2.waitKey(0) if k == 27: # กด ESC ออก cv2.destroyAllWindows() elif k == ord('s'): # กด 's' บันทึกภาพ และ ออก cv2.imwrite('joygray.png',img) cv2.destroyAllWindows()
การใช้ Matplotlib
การใช้ Matplotlib จะเพิ่มฟังก์ชั่นต่างๆ เช่น ซูมภาพ บันทึกภาพ ฯลฯ
import numpy as np import cv2 from matplotlib import pyplot as plt img = cv2.imread('joy.jpg',0) plt.imshow(img, cmap = 'gray', interpolation = 'bicubic') plt.xticks([]), plt.yticks([]) # ซ้อนค้าแกน x และY plt.show()