ข้อดีของ opencv และ จะเขียนได้อย่างไร

Posted by Undermine on 18:55

ข้อดีของ Opencv

1. เป็น library ที่นำไปใช้ได้เลยครับ algorithm พวกพื้นฐานไม่ต้องมาคิดหรือโค้ดเอง ฟรีด้วยครับ
2. มี source code และ ตัวอย่างให้มาด้วย สามารถนำโค้ดที่มี ใน opencv ไปประยุกต์ใชได้
3. มี yahoo group เป็นที่รวมตัวของคนที่ใช้จากทั่วโลก
4. opencv ถูกพัฒนาจากทีม พัฒนาของ intel และ optimize code สำหรับ cpu 586 ของ intel
คิดว่า น่าจะ รุ่นที่มีพวก คำสั่งพิเศษขึ้นมานะครับ เช่น พวก mmx sse ทำให้เป็น library ที่มีความเร็วในการประมวล
ผลอยู่ในระดับต้นๆ เร็วกว่า ที่มีขายบางตัวด้วยครับ




จะเขียนอย่างไร


1. ติดตั้งโปรแกรม visual studio ก่อน เพราะเราจะเขียนด้วย c++
2. หากล้องมาซักตัว (ไม่เอากล้องถ่ายรูปนะ) ลองเขียนโปรแกรมให้มันรับภาพจากกล้องเข้ามาให้ได้ ซึ่งปกติแล้วถ้ากล้องหรูๆ ก็จะมี library เฉพาะแถมมาให้ เพื่อรับภาพจากกล้องเข้ามาในโปรแกรม แต่ถ้ากล้องไม่หรู ก็ใช้ openCV รับภาพก็ได้ มันมี method สำเร็จรูปไว้รับภาพอยู่แล้ว
3. เมื่อรับภาพจากกล้องได้แล้ว สิ่งที่เราจะได้ก็คือ array ขนาดใหญ่โคตรๆ ขึ้นอยู่กับ จำนวน pixel ของภาพ เช่น ถ้ากล้องส่งภาพ 640x480 pixel ด้วยระบบ RGB มาให้ เราก็จะได้ array ขนาด 640x480x3 = 921600 ช่อง หลังจากนั้นเราก็จะเอา array นี้ไปผ่านกระบวนการ
4. ถ้าภาพที่ได้มันเบี้ยว เพราะเลนส์ distortion ก็ต้องแก้ไขด้วยการ calibrate ซึ่งตรงนี้เองที่เราต้องใช้ openCV เพราะมันมี method calibrate อยู่แล้ว
5. เอา array เมื่อกี๊ ไปวิเคราะห์หาตำแหน่งหัวหุ่นกับลูกบอล โดยการตรวจจับสีที่เราสนใจ(หรือที่เรียกว่า connected component) เช่น สีน้ำเงิน สีเหลือง สีส้ม ซึ่ง algorithm ที่ใช้ก็คือ breadth-first search หรือ depth-first search ก็ได้ เมื่อได้ตำแหน่งหุ่นกับลูกบอลแล้วก็เป็นอันเสร็จ จะเห็นได้ชัดว่าในกระบวนการที่ผ่านมา เราใช้ openCV แค่นิดหน่อย ที่เหลือก็คงต้องเขียนเอง

0 comments:

แสดงความคิดเห็น