Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

จะโหลดและแสดงรูปภาพใน OpenCV โดยใช้ C ++ ได้อย่างไร


ในหัวข้อนี้ เราจะกำหนดวิธีการโหลดและแสดงรูปภาพโดยใช้ OpenCV ใน C++ มีฟังก์ชันต่อไปนี้ที่จำเป็นสำหรับการโหลดและแสดงรูปภาพใน OpenCV

  • แมท: Mat ไม่ใช่ฟังก์ชัน เป็นโครงสร้างข้อมูล ชนิดของตัวแปร เช่นเดียวกับประเภทตัวแปร int, char, string ใน C ++ Mat เป็นตัวแปรของ OpenCV ซึ่งสร้างโครงสร้างข้อมูลเมทริกซ์เพื่อโหลดรูปภาพภายใน ในโปรแกรมนี้ เราเขียน 'Mat myImage;'. นั่นหมายความว่าเรากำลังประกาศตัวแปรเมทริกซ์ชื่อ 'myImage'
  • namedWindow(): มันจัดสรรหน่วยความจำบางส่วนและสร้างหน้าต่างเพื่อแสดงภาพ มันทำงานเหมือนกรอบรูป ใน OpenCV เราจะต้องสร้างฟังก์ชันเป็น 'namedWindow("name of the window",flag)'
  • 3 . imread(): ฟังก์ชันนี้อ่านรูปภาพจากตำแหน่งที่กำหนด โปรแกรมนี้อ่านภาพจากไดรฟ์ 'C:' ในการใช้ฟังก์ชันนี้ คุณต้องเขียนเป็น 'imread("ตำแหน่งของรูปภาพ/ชื่อของรูปภาพที่มีนามสกุล", แฟล็ก)'
  • imshow(): ฟังก์ชันนี้แสดงรูปภาพในหน้าต่างที่กำหนด ในการใช้ฟังก์ชันนี้ คุณต้องเขียนเป็น 'imshow(name of the window", name of the matrix)'
  • waitKey(): นี่เป็นหน้าที่สำคัญของ OpenCV ในการประมวลผลภาพและดำเนินการ เราต้องให้เวลากับระบบ ถ้าเราไม่ทำ เราจะไม่

ฟังก์ชันนี้จะรอเป็นระยะเวลาหนึ่งก่อนที่จะปิดโปรแกรม หากคุณใช้ waitKey(10000) โปรแกรมจะปิดโปรแกรมหลังจาก 10 วินาที หากคุณเขียน waitKey(0) จะได้รับผลลัพธ์ที่ต้องการ ฟังก์ชันนี้จะช่วยให้เราสามารถให้เวลากับระบบในการทำงานได้ รอการกดแป้นพิมพ์จากผู้ใช้ เมื่อผู้ใช้คลิกปุ่มใด ๆ จากแป้นพิมพ์ โปรแกรมจะหยุด ฟังก์ชันนี้ต้องเขียนเป็น 'waitKey(มิลลิวินาที)'

  • destroyWindows(): ฟังก์ชันนี้จะปิดหน้าต่างทั้งหมด เมื่อเราสร้าง windows เราจัดสรรหน่วยความจำบางส่วน ทำลายหน้าต่าง() ฟังก์ชันจะปล่อยหน่วยความจำนั้นออกสู่ระบบ

โปรแกรมต่อไปนี้แสดงวิธีการโหลดและแสดงภาพโดยใช้ OpenCV Libraries

ตัวอย่าง

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main() {
   Mat myImage;//declaring a matrix named myImage//
   namedWindow("PhotoFrame");//declaring the window to show the image//
   myImage = imread("lakshmi.jpg");//loading the image named lakshme in the matrix//
   if (myImage.empty()) {//If the image is not loaded, show an error message//
      cout << "Couldn't load the image." << endl;
      system("pause");//pause the system and wait for users to press any key//
      return-1;
   }
   imshow("PhotoFrame", myImage);//display the image which is stored in the 'myImage' in the "myWindow" window//  
   destroyWindow("Photoframe");//close the window and release allocate memory//
   waitKey(0);//wait till user press any key
   return 0;
}

ในการรันโปรแกรมข้างต้น เราได้ผลลัพธ์ดังต่อไปนี้ -

ผลลัพธ์

จะโหลดและแสดงรูปภาพใน OpenCV โดยใช้ C ++ ได้อย่างไร