การสร้าง GUI ด้วย OpenCV และการวาดรูป


การสร้าง GUI ด้วย OpenCV และการวาดรูป 
การสร้าง GUI บน OpenCV เป็นการวาดรูปบนรูปภาพที่เราสร้างกด และกำหนดการทำงานของรูปนั้นๆเมื่อมีการคลิกเมาส์ และใส่ฟังก์ชันการทำงานให้กับการคลิกนั้นๆ

การสร้าง GUI และ Button เพื่อใช้งาน
1. สร้างหน้า Windows โดย การใช้คำสั่ง Mat3b ใน openCV ที่รับ input parameter เป็น ความสูง ความกว้าง และ สี

Mat3b img(600,800,Vec3b(255,255,255));


imshow("Windows",img);

2. การสร้างปุ่มทำได้โดยการวาดปุ่มลงบน Windows ที่เราสร้างขึ้นโดยใช้ฟังก์ชัน Rect ของ openCV
ซึ่งต้องใส่ input parameter เป็นตำแหน่งและขนาด(กว้าง,สูง)ให้กับฟังก์ชันนี้
  • สามารถใส่สีแหละข้อความให้กับปุ่มของเราได้


Button = Rect(0,0,100,30);
3. จากนั้นกำหนดการทำงานของปุ่มนั้นๆ ซึ่งจะมีขั้นตอนดังนี้
  • สร้างฟังก์ชันสำหรับการ click และ ปล่อยเมาส์
  • ใช้งาน event Mouse ของ openCV
  • กำหนดการทำงานของการ click นั้น
 
if(event == EVEN_LBUTTONDOWN) หรือ if(event == EVENT_LBUTTONUP) 
สำหรับการ Left click หรือการคลิกซ้ายนั้นเอง
แสดงตัวอย่าง button
4. การสร้างฟังก์ชันการทำงานให้กับ Button นั้นๆ 
ตัวอย่างเช่น การวาดรูปสี่เหลียม ซึ่งมีวิธีการดังนี้ 
  1. กำหนด index ให้กับปุ่มนั้นๆในที่นี้ใช้เป็นย flag.frist หมายถึง ปุ่มที่ 1 ซึ่งหมายถึง rectangle (Button)
  2. หลักการในการวาดรูปสี่เหลี่ยมก็คิอ จะทำการเก็บตำแหน่งเริ่มต้นเมื่อคลิกและสร้างรูปสี่เหลียมตามที่มีการคลิกเมาส์ค้างไว้ตั้งแต่ตำแหน่งเริ่มต้นเริ่มต้นจนถึงตำแหน่งสุดท้ายที่ปล่อยเมาส์
  3. จากนั้นใช้ฟังก์ชันวาดรูปสี่เหลี่ยมของ openCV ซึ่งก็คือ rectangle ซึ่งรับ parameter เป็น point ของตำแหน่งเริ่มต้นและตำแหน่งสุดท้าย ค่า saclar ที่เป็นค่าสี BGR และสุดท้ายเป็นค่าของพื้นหลัง
rectangle(flag.realcanvas,pone,ptwo,scalar(flag.blue,flag.green,flag.red),-1,0);
ขั้นตอนดังกล่าวเป็นเพียงขั้นพื้นฐานสำหรับผู้ที่ต้องการสร้าง GUI ด้วย openCV บน C++ ซึ่งสามารถศึกษาเพิ่มเติมได้ใน VDO 

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การจัดการภาพเบื่องต้นด้วย OpenCV

Opencv Camshift With C++