ผมมีคำถามเกี่ยวกับ Python, OpenCV และ Numpy ครับ

ผมกำลังศึกษาการใช้ OpenCV Library (ver. 2.4.11) โดยใช้คู่กับ Numpy (1.9) และเขียนโดย Python บน Visual Studio 2013 Express ครับ ตาม Link นี้

https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_core/py_basic_ops/py_basic_ops.html#basic-ops

http://docs.scipy.org/doc/numpy/reference/generated/numpy.chararray.item.html#numpy.chararray.item

ปัญหามีอยู่ว่า
1. ผมหา OpenCV Reference ที่เป็นของ Python อย่างเดียวไม่เจอครับ ที่มีก็มีแต่ C++ และแนบ Python code ให้ดูนิดหน่อย ทำให้เวลาผมต้องการดึงค่า Property ใน Object ต่างๆ ผมก็จะอ้างอิงจาก Reference ที่เป็น C++ โดยหวังว่า มันอาจจะได้ ซึ่งหลายอย่างก็ไม่ได้ ยกตัวอย่างเช่น ในคลาส Mat (คลาสเกี่ยวกับ matrices data) ผมต้องการรู้ขนาด row และ column ของภาพ ซึ่งใน Referece บอกว่าสามารถอ่านได้จาก Mat.size() ผมก็ลองเขียนโค้ดประมานนี้

import cv2
IMAGE = "opencv.png"
img = cv2.imread(IMAGE,cv2.IMREAD_GRAYSCALE)
print str(img.size())

แน่นอนครับ มันฟ้อง 'int' object is not callable ในตำแหน่ง print ของผม แต่ถ้าผมลองเขียนตาม Tutorial
print str(img.shape) ซึ่แน่นอนว่าผมได้ค่าที่ต้องการ

ประเด็นของผมที่ร่ายมาซะยาวเยียดนี่คือ ผมจะหา Reference ของ OpenCV 2.4.11 ที่เป็นของ Python ได้จากที่ใหนครับ และใครพอจะมีคำแนะนำในเรื่องอื่นๆที่เกี่ยวข้องบ้างครับ

2. ถ้าลองเปิดลิ้ง https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_core/py_basic_ops/py_basic_ops.html#basic-ops เลื่อลงมาจะเห็นหน้าตาประมาณรูปนี้ครับ


ฟังก์ชัน item() และ itemset() เป็นฟังก์ชันของ Numpy (tutorial มันบอกไว้)
http://docs.scipy.org/doc/numpy/reference/generated/numpy.chararray.item.html#numpy.chararray.item
http://docs.scipy.org/doc/numpy/reference/generated/numpy.chararray.itemset.html#numpy.chararray.itemset

แต่จากโค๊ด

import cv2
IMAGE = "opencv.png"
img = cv2.imread(IMAGE,cv2.IMREAD_GRAYSCALE)
print img.item(100,100)
img.itemset((100,100),0)
print img.item(100,100)

โค๊ดนี้ผมทำงานได้ครับ สังเกตุว่าไม่ได้ import numpy ด้วย นั้นแสดงว่า openCV ของ python ก็ประกาศฟัง item() และ itemset() ไว้ด้วยใช่มั๊ยครับ แต่เนื่องจากผมพึ่งจะหัดเขียน Python ด้วยครับ ตรงนี้ผมเลยไม่มั่นใจครับ หรือมันอาจจะเป็นฟังก์ชั่นของ numpy และ Python สามารถเรียกมาใช้ได้ (โดยวิธีที่ผมไม่รู้) รึเปล่า ตรงนี้ผมขอรบกวนผู้รู้ช่วยเหลือผมทีครับ
แสดงความคิดเห็น
Preview
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่