ผลต่างระหว่างรุ่นของ "Getting Started with Images"

จาก Morange Wiki
(หน้าที่ถูกสร้างด้วย ''''วัตถุประสงค์''' *สามารถอ่านภาพวิธีการแสดงและวิธ...')
 
แถว 3: แถว 3:
 
*รู้วิธีการใช้ฟังก์เหล่านี้ cv2.imread () cv2.imshow () cv2.imwrite ()
 
*รู้วิธีการใช้ฟังก์เหล่านี้ cv2.imread () cv2.imshow () cv2.imwrite ()
 
*เรียนรู้วิธีการแสดงภาพที่มี Matplotlib
 
*เรียนรู้วิธีการแสดงภาพที่มี Matplotlib
 +
 +
'''Read an image'''
 +
:ใช้ function cv2.imread() ในการอ่านภาพ และภาพควรอยู่ในโฟล์ของการทำงาน
 +
*cv2.IMREAD_COLOR
 +
*cv2.IMREAD_GRAYSCALE
 +
*cv2.IMREAD_UNCHANGED
 +
<br>
 +
ดูได้จากโค๊ดด้านล้าง
 +
(ตัวเลขด้านหลังสามารถเปลียนได้ 1,0 หรือ -1 ลองเปลี่ยนดูครับ)
 +
<pre>
 +
import numpy as np
 +
import cv2
 +
 +
# แสดงภาพโทนสีเท่า
 +
img = cv2.imread('joy.jpg',0)
 +
</pre>
 +
<br>
 +
'''Display an image'''
 +
:การแสดงภาพสามารถใช้ function  cv2.imshow()
 +
:อาร์กิวเมนต์แรกเป็นชื่อที่หน้าต่างซึ่งเป็นสตริง อาร์กิวเมนต์ที่สองเป็นภาพของเรา เราสามารถสร้างหน้าต่างตามที่เราต้องการ แต่ต้องมีชื่อที่ต่างกัน
 +
<pre>
 +
cv2.imshow('image',img)
 +
cv2.waitKey(0)
 +
cv2.destroyAllWindows()
 +
</pre>
 +
<div align="center">[[ไฟล์:Selection 014.jpg|420px|thumb|none|]]</div>
 +
----
 +
'''cv2.waitKey ()''' [[http://docs.opencv.org/trunk/d7/dfc/group__highgui.html#ga5628525ad33f52eab17feebcfba38bd7&gsc.tab=0 อ่านเพิ่มเติม]] เป็นฟังก์ชั่นแป้นพิมพ์ อาร์กิวเมนต์ของมันคือเวลาเป็นมิลลิวินาที นอกจากนี้ยังสามารถตั้งค่าในการตรวจสอบจังหวะสำคัญที่เฉพาะเจาะจงเช่นถ้าคีย์ถูกกด ฯลฯ ซึ่งเราจะอธิบายด้านล่าง
 +
<br><br>
 +
'''cv2.destroyAllWindows()''' [[http://docs.opencv.org/trunk/d7/dfc/group__highgui.html#ga6b7fc1c1a8960438156912027b38f481&gsc.tab=0 อ่านเพิ่มเติม]] ถ้าเราต้องการแสดงหน้าต่างทั้งหมดที่เราสร้าง สามารถใช้ cv2.destroyWindow () ผ่านชื่อหน้าต่างเป็นอาร์กิวเมนต์
 +
:คุณสามารถปรับขนาดหน้าต่างได้จากฟังก์ชัน cv2.namedWindow ฟังก์ชัน () โดยค่าเริ่มต้นเป็น cv2.WINDOW_AUTOSIZE แต่ถ้าคุณระบุที่จะ cv2.WINDOW_NORMAL คุณสามารถปรับขนาดหน้าต่าง ใช้ในกรณีที่ภาพมีขนาดใหญ่เกินไป
 +
<pre>
 +
cv2.namedWindow('pic', cv2.WINDOW_NORMAL)
 +
cv2.imshow('pic',img)
 +
cv2.waitKey(0)
 +
cv2.destroyAllWindows()
 +
</pre>
 +
<br>
 +
'''Write an image'''
 +
<br>
 +
สามารถใช้ฟังก์ชั่น ในการบันทึกภาพได้
 +
<br>
 +
อาร์กิวเมนต์แรกคือชื่อไฟล์ อาร์กิวเมนต์ที่สองเป็นภาพที่คุณต้องการบันทึก
 +
<pre>
 +
cv2.imwrite('joygray.png',img)
 +
</pre>
 +
นี้จะบันทึกภาพในรูปแบบ PNG ในไดเรกทอรีการทำงาน ดูการใช้งานจากโค๊ดด้านล้าง
 +
<pre>
 +
 +
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()
 +
 +
</pre>
 +
'''การใช้ Matplotlib'''
 +
<br>
 +
การใช้ Matplotlib จะเพิ่มฟังก์ชั่นต่างๆ เช่น ซูมภาพ บันทึกภาพ ฯลฯ
 +
<pre>
 +
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()
 +
</pre>
 +
 +
<div align="center">[[ไฟล์:Selection 015.jpg|500px|thumb|none|]]</div>
 +
----

รุ่นแก้ไขเมื่อ 06:57, 2 สิงหาคม 2559

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

  • สามารถอ่านภาพวิธีการแสดงและวิธีการบันทึกกลับ
  • รู้วิธีการใช้ฟังก์เหล่านี้ 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()
มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย