Getting Started with Images

จาก Morange Wiki

วัตถุประสงค์

  • สามารถอ่านภาพวิธีการแสดงและวิธีการบันทึกกลับ
  • รู้วิธีการใช้ฟังก์เหล่านี้ 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([])  # to hide tick values on X and Y axis
plt.show()
มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย