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




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

1.การปรับ brightness และ contrast
ก่อนอื่นก็มาทำความรู้จัก กับ brightness และ contrast ก่อนว่าคืออะไร
Brightness (ค่าความสว่าง) ใช้ในการปรับแต่งค่าความสว่างของภาพ การปรับแต่งค่าความสว่างของภาพนั้นจะมีประสิทธิผลในกรณีที่โทนของภาพทั้งภาพนั้นออกมาในแนวที่มืดหรือสว่างจนเกินไป
Contrast ค่าคอนทราสต์นั้นคือระดับความแตกต่างระหว่างส่วนที่สว่างกับส่วนที่มืดของตัวภาพการเพิ่มค่าคอนทราสต์นั้นจะส่งผลให้ความแตกต่างดังกล่าวข้างต้นนั้นชัดเจนยิ่งขึ้นซึ่งทำให้ภาพนั้นมีความคมชัดมากขึ้นด้วย ส่วนการลดค่าคอนทราสต์นั้นก็คือการลดค่าความแตกต่างระหว่างส่วนสว่างและส่วนที่มืด และเป็นการปรับความคมชัดของภาพให้ภาพซอฟท์ลงการเพิ่มค่าคอนทราสต์นั้นจะให้ผลในเรื่องของการเพิ่มความเป็นสามมิติให้กับตัวภาพ

ขั้นตอนในการปรับ brightness และ contrast

 - ใช้ฟังก์ชั้น createTrackbar เพื่อทำการสร้างแถบเลื่อนใช้ในการปรับแสงและคอนทราส โดยกำหนดตัวแปรที่จะสร้างการเปลียนแปลงลงไป และกำหนดค่าสูงสุดที่ปรับได้

- กำหนดให้เมื่อคีย input = Enter ให้ทำการนำข้อมูล  brightness และ contrast ที่ถูกปรับโดย Trackbar มาปรับใช้กับรูปภาพ

-
 ผลลัพท์ที่ได้
   

1.2 ปรับขนาดภาพ (ย่อ ขยาย), หมุนภาพ (เป็นองศาที่ต้องการ), กลับภาพ


การย่อขยายรูปภาพ

ก่อนจะเข้าสู่เนื่อหาในการปรับรูปภาพ เราจะต้องทำการสร้าง input ของโปรแกรมก่อน โดยใช้ฟังก์ชั้น

char k = waitKey(); และทำการ Loop การทำงานในส่วน main ให้วนลูปไว้ตลอดเพื่อทำงานสิ่งที่เราต้องการ


ใน opencv จะมีฟังก์ชั่นที่ชื่อว่า resize();


โดยจะมีพารามิเตอร์คือ resize(image_input,image_output,size,ขนาด,ขนาด)

การกลับรูปภาพ

ใน opencv จะมีฟังก์ชั่นที่ชื่อว่า flip();


โดยจะมีพารามิเตอร์คือ flip(image_input,image_output, 1 หรือ 0 );

โดยที่ 1 จะเป็นการกลับภาพซ้ายขวา
ส่วน 0 จะเป็นการกลับภาพบนล่าง

หมุนภาพ (เป็นองศาที่ต้องการ)
ใน opencv จะมีฟังก์ชั่นที่ชื่อว่า warpAffine();


ก่อนอื่นต้องคำนวณจุดกรึ่งกลางของรูปภาพ ดังนี้

Point2f center(staticimg.cols / 2., staticimg.rows / 2.);

จากนั้นใช้

warpAffine(อินพุต,เอาท์พุต,getRotationMatrix2D(จุดกึ่งกลาง.องศาในการหมุน,1),InputArray,size);


ความคิดเห็น

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

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

Opencv Camshift With C++