ผลต่างระหว่างรุ่นของ "Getting Started with Images"
Nobpadon (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย ''''วัตถุประสงค์''' *สามารถอ่านภาพวิธีการแสดงและวิธ...') |
Nobpadon (คุย | มีส่วนร่วม) |
||
แถว 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()