หน้าแรก
หน้าแรก
แทร็กบาร์เป็นแถบควบคุมได้ซึ่งใช้เพื่อควบคุมพารามิเตอร์ต่างๆ ใน OpenCV เมื่อใช้แทร็กบาร์ เราสามารถทำให้มันง่ายขึ้นและเปลี่ยนพารามิเตอร์แบบกราฟิกได้ Track-bar ลบข้อจำกัดนี้ และทำให้สามารถสร้างเอฟเฟกต์ไดนามิกโดยใช้ OpenCV โปรแกรมต่อไปนี้สาธิตวิธีเพิ่มแทร็กบาร์ใน OpenCV โดยใช้ C++ ตัวอย่าง #include&l
การหมุนรูปภาพโดยใช้ฟังก์ชันในตัวของ OpenCV นั้นเป็นงานที่ง่ายดาย ในการหมุนภาพ เราต้องใช้ไฟล์ส่วนหัว highgui.hpp และ imgproc.hpp และเราจะแนะนำฟังก์ชันเพิ่มเติมในโปรแกรมนี้ซึ่งเกี่ยวข้องกับการหมุนภาพ โปรแกรมต่อไปนี้จะหมุนรูปภาพใน OpenCV โดยใช้ C++ ได้อย่างไร ตัวอย่าง #include<iostream> #include
ในหัวข้อนี้ เราจะเห็นแอปพลิเคชั่นอื่นของ trackbar ที่นี่ เราจะใช้แถบแทร็กเพื่อเปลี่ยนขนาดของรูปภาพและเพิ่มเส้นขอบให้กับรูปภาพและเปลี่ยนขนาดของเส้นขอบโดยใช้แถบแทร็ก ด้วยโปรแกรมต่อไปนี้ เราสามารถเปลี่ยนขนาดของรูปภาพ เพิ่มเส้นขอบ เปลี่ยนขนาดของเส้นขอบ และหมุนรูปภาพได้ คล้ายกับตัวอย่างก่อนหน้านี้ โปรแ
การหมุนวิดีโอคล้ายกับการหมุนภาพ ข้อแตกต่างเพียงอย่างเดียวคือแทนที่จะโหลดภาพนิ่งลงในเมทริกซ์ภาพ เราได้โหลดวิดีโอหรือสตรีมวิดีโอจากกล้องแล้ว ที่นี่เราไม่ได้โหลดวิดีโอแต่ถ่ายวิดีโอโดยใช้กล้อง หากคุณต้องการใช้ไฟล์วิดีโอ เพียงใส่ที่อยู่ของไฟล์วิดีโอให้ถูกต้อง โปรแกรมต่อไปนี้สาธิตวิธีการหมุนวิดีโอใน Ope
Mouse Events เป็นหนึ่งในคุณสมบัติที่มีประโยชน์ที่สุดของ OpenCV ใน OpenCV เราสามารถติดตามตำแหน่งของตัวชี้เมาส์และติดตามการคลิก (คลิกขวา ซ้าย และคลิกกลาง) OpenCV มีการใช้งานอย่างกว้างขวางในด้านวิทยาการหุ่นยนต์และคอมพิวเตอร์วิทัศน์ มักใช้ตัวชี้และคลิกเมาส์สำหรับติดตามการมองเห็นในวิทยาการหุ่นยนต์และคอมพ
เราจะเข้าใจวิธีการตรวจจับสีเฉพาะและติดตามวัตถุตามสี ประสิทธิภาพของระบบตรวจจับสีและการตรวจจับสีขึ้นอยู่กับสภาพแวดล้อม หากคุณเปลี่ยนแสงของห้องหรือเปลี่ยนสีพื้นหลัง จะมีผลอย่างมากต่อการตรวจจับสี โปรแกรมต่อไปนี้สาธิตวิธีการตรวจหาสีโดยใช้ OpenCV ใน C++ ตัวอย่าง #include<iostream> #include<open
การติดตามสีคล้ายกับการตรวจจับสี เพื่อวัตถุประสงค์ในการติดตาม เราได้เพิ่มบรรทัดพิเศษสองสามบรรทัดเพื่อคำนวณพื้นที่ของวัตถุที่ตรวจพบ จากนั้นติดตามตำแหน่งปัจจุบันของพื้นที่นั้น และสุดท้ายใช้ฟังก์ชัน line() ของ OpenCV เพื่อแสดงเส้นทางการเคลื่อนที่ของวัตถุ โปรแกรมต่อไปนี้สาธิตวิธีการติดตามสีใน OpenCV โดย
เราตรวจจับใบหน้าจากภาพ ในการตรวจจับใบหน้า เราใช้ฟังก์ชัน detectMultiScale() รูปแบบที่แท้จริงของฟังก์ชันนี้คือ − ไวยากรณ์ detectMultiScale(source matrix, vector, searchScaleFactor, minNeighbours, flags, minfeatureSize) ด้วยการเปลี่ยนอาร์กิวเมนต์ของฟังก์ชัน เราสามารถควบคุมฟังก์ชัน detect.MultiSpace(
การนับจำนวนใบหน้าที่อยู่ในรูปภาพนั้นทำได้ง่าย โปรแกรมที่เราเขียนในส่วนที่แล้วมีข้อมูลจำนวนใบหน้าใน faces.size() แล้ว รหัสนี้-faces.size() ให้ค่าจำนวนเต็ม ตัวอย่างเช่น ถ้าเราเขียน int x =faces.size() ตัว x จะประกอบด้วยจำนวนใบหน้า โปรแกรมต่อไปนี้จะคำนวณจำนวนใบหน้าจากรูปภาพที่กำหนดและแสดงในหน้าต่างคอ
เราจะรู้วิธีการครอบตัดใบหน้าที่ตรวจพบใน OpenCV ในการครอบตัดใบหน้าที่ตรวจพบ เราจำเป็นต้องมีเมทริกซ์หลายตัว วิธีที่เหมาะสมที่สุดคือการใช้อาร์เรย์รูปภาพ ในโปรแกรมนี้โดยใช้สองบรรทัดต่อไปนี้ เราได้ประกาศเมทริกซ์รูปภาพสองตัว - Mat cropped_faces[4]; Mat faceROI[4]; เมทริกซ์แรกคือการจัดเก็บภาพที่ครอบตัด
เราจะเรียนรู้วิธีตรวจจับใบหน้าที่ใหญ่ที่สุดเท่านั้น หัวข้อนี้เหมือนกับหัวข้อก่อนหน้า ข้อแตกต่างเพียงอย่างเดียวคือเราใช้โครงสร้าง Rect เพิ่มเติมและ for loop เพื่อตรวจจับใบหน้าที่ใหญ่ที่สุด รูปแบบที่แท้จริงของฟังก์ชันนี้ − Mat faceROI = image_with_humanface(maxRect) maxRect มีข้อมูลพื้นที่และตำแหน่ง
เมื่อเราต้องการติดตามตำแหน่งของใบหน้า เราควรปิดใบหน้าด้วยวงรีเพราะวงรีมีจุดศูนย์กลาง ศูนย์กลางนี้ยังเป็นจุดศูนย์กลางของใบหน้าที่ตรวจพบ เป็นผลให้การติดตามตำแหน่งของใบหน้าที่ตรวจพบมีความแม่นยำมากขึ้น โปรแกรมต่อไปนี้ติดตามศูนย์กลางของใบหน้าที่ตรวจพบและแสดงตำแหน่งในหน้าต่างคอนโซล - ตัวอย่าง #include<
การตรวจจับใบหน้าแบบเรียลไทม์คล้ายกับการตรวจจับใบหน้าในภาพนิ่ง ข้อแตกต่างเพียงอย่างเดียวคือการตรวจจับใบหน้าแบบเรียลไทม์ และเราต้องใช้วิดีโอสตรีมของคอมพิวเตอร์ ในโปรแกรมนี้ เราใช้ฟังก์ชัน VideoCapture() ฟังก์ชันนี้ถ่ายวิดีโอจากกล้องอื่นและจัดเก็บเฟรมชั่วคราวในเมทริกซ์ที่กำหนด ฟังก์ชันนี้จะจับภาพวิดีโอ
เราจะเรียนรู้วิธีติดตามใบหน้าแบบเรียลไทม์ใน OpenCV โปรแกรมนี้เหมือนกับโปรแกรมก่อนหน้านี้ และความแตกต่างคือ เราใช้วงรีแทนสี่เหลี่ยมผืนผ้าเพื่อระบุใบหน้า และเรายังใช้คำสั่ง cout เพิ่มเติมเพื่อแสดงพิกัดของใบหน้าในหน้าต่างคอนโซล โปรแกรมต่อไปนี้เพื่อตรวจจับใบหน้ามนุษย์แบบเรียลไทม์ - ตัวอย่าง #include<
ที่นี่ เราจะเรียนรู้วิธีตรวจจับดวงตาใน OpenCV เราจะใช้ตัวแยกประเภท haarcascade_eye.xml ที่อยู่ใน C:/opencv/sources/data/haarcascades เพื่อตรวจจับดวงตา ในการตรวจจับดวงตา เราต้องเพิ่มส่วนหัวเหล่านี้ ส่วนหัวแรกคือ และเป็นส่วนหัวของภาษาการเขียนโปรแกรม C++ การอ่านการเขียนรูปภาพและฟังก์ชันอินเทอร์เฟซผู้
ที่นี่ เราจะเรียนรู้วิธีติดตามดวงตาใน OpenCV หลังจากสืบหาดวงตาแล้ว การติดตามก็เป็นงานที่ง่ายดายและตรงไปตรงมา เราใช้วงกลมปิดตาที่ตรวจพบ การติดตามศูนย์กลางของวงกลมหมายถึงการติดตามศูนย์กลางของดวงตา ในการติดตามจุดศูนย์กลางของวงกลม เราต้องการตัวแปรจำนวนเต็มสองตัว สิ่งนี้ได้ทำในสองบรรทัดแรก (9th และ 10th
ที่นี่ เราจะเรียนรู้วิธีตรวจจับและติดตามการเคลื่อนไหวของลูกตาใน OpenCV โปรแกรมต่อไปนี้สาธิตการตรวจจับลูกตาและติดตามตำแหน่ง ตัวอย่าง #include<iostream> #include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> #include<open
ในปัญหานี้ เราได้รับอาร์เรย์ arr[] ขนาด n งานของเราคือค้นหาค่าสูงสุดของค่าต่ำสุดสำหรับทุกขนาดหน้าต่างในอาร์เรย์ที่กำหนด คำอธิบายปัญหา − เราต้องหาค่าสูงสุดของขนาดหน้าต่างต่ำสุดที่ต่างกันตั้งแต่ 1 ถึง n สำหรับสิ่งนี้ เราจะพิจารณาอาร์เรย์ย่อยของขนาดหน้าต่างที่กำหนด ค้นหาองค์ประกอบต่ำสุดของแต่ละ subarr
ในปัญหานี้ เราได้รับบ้าน n หลังที่มีค่าบางอย่างในนั้น งานของเราคือค้นหามูลค่าสูงสุดที่ขโมยมาจากบ้าน คำอธิบายปัญหา − เรามีบ้านอาร์เรย์[] ที่ประกอบด้วยค่าที่อยู่ในแต่ละบ้าน โจรปล้นบ้าน แต่เขาไม่สามารถขโมยจากบ้านสองหลังที่อยู่ติดกันได้เนื่องจากเพื่อนบ้านรู้เรื่องการโจรกรรม เราต้องหามูลค่าสูงสุดที่สามา
ในปัญหานี้ เราได้รับเมทริกซ์แบบ 2 มิติ[][] ขนาด n, n เป็นเลขคี่ งานของเราคือค้นหาความยาวด้านสูงสุดของสี่เหลี่ยมจัตุรัสในเมทริกซ์ คำอธิบายปัญหา − เราจำเป็นต้องหาความยาวของเมทริกซ์สี่เหลี่ยมจัตุรัสที่มีค่าปริมณฑลเท่ากันและใช้จุดศูนย์กลางเดียวกันกับเมทริกซ์ มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน อินพ