Python: PyOpenCV2.1: Open and Save Image

10 08 2012

20120810

ต้องเขยิบขึ้นมาใช้ PyOpenCV2.1 เพราะต้องการใช้ฟังก์ชั่น SGM ที่อยู่ในนั้น ผลปรากฎว่าบางคำสั่งเปลี่ยนไปต้องมางมกันใหม่
งั้นก็เริ่มด้วยเปิดภาพก่อนละกัน ใช้เหมือนเวอร์ชั่น 2.0 ได้ทีนี้ตอนเขียนภาพออก ก็เลยทำการแปลงไฟล์ไปด้วยเลย

ภาพต้นฉบับเป็นไฟล์ Jpeg ชื่อไฟล์ cappuccino.jpg
ต้องการแปลงให้เป็นไฟล์ pgm ที่เป็นรูปแบบไฟล์โทนสีเทา ให้ชื่อ new.pgm

c0de:

#——————————————————————————-
# Name: test pyOpenCV2.1
# Purpose: open image and save image
#
# Author: Phanu
#
# Created: 10/08/2012
# Copyright: (c) Phanu 2012
# Licence: CopyLeft
#——————————————————————————-

from pyopencv import *

filename = r’cappuccino.jpg’
img = imread(filename)

# gray scale
out = img.clone()
cvtColor(img, out, CV_RGB2GRAY)

imwrite(“new.pgm”,out)
imshow(“PyopenCV: input image”,img)
imshow(“PyopenCV: output image”,out)
imshow(“PyopenCV: load output image”,imread(“new.pgm”))
waitKey(0)

ผลที่ได้

ภาพซ้ายบนเป็นภาพต้นฉบับที่เปิดขึ้นมา
ภาพขวาบนเป็นภาพที่แปลงจากภาพสีผสมมาเป็นภาพสีเทา
ภาพขวาล่างเป็นภาพที่บันทึกเป็นรูปแบบ pgm แล้วเปิดขึ้นมา

รูปแบบที่ OpenCV รองรับดูได้จาก http://opencv.willowgarage.com/documentation/cpp/reading_and_writing_images_and_video.html

 

ปรับปรุงต่ออีกนิดหน่อย ให้เปลี่ยนนามสกุลเองโดยใช้ชื่อไฟล์เดิม

ได้โค้ทใหม่เป็น

filename = r’cappuccino.jpg’
img = imread(filename)
iname,fname = filename.split(“.”)
# gray scale
out = img.clone()
cvtColor(img, out, CV_RGB2GRAY)

outname = iname +”.pgm”
imwrite(outname,out)
imshow(“PyopenCV: input image”,img)
imshow(“PyopenCV: output image”,out)
imshow(“PyopenCV: load output image”,imread(outname))
waitKey(0)

ผลได้ภาพเหมือนเดิม แต่ไฟล์ผลลัพท์เป็น cappuccino.pgm


Actions

Information

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: