Open CV?C++顯示圖像
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;//包含cv命名空間
int main() {//imread(path):從給定路徑讀取一張圖片,儲存為Mat變量對象Mat img = imread("images/love.jpg");//namedWindow(window):定義一個顯示窗口并指定窗口名namedWindow("love");//imshow(window,img),在指定窗口顯示指定圖像imshow("love", img);//waitKey(millisecond),等待按鍵輸入后退出,指定時間(ms)后自動關閉窗口,second=0表示無限等待waitKey(0);//關閉所有窗口,釋放資源destroyAllWindows();return 0;
}
Open CV C++顯示視頻
#include <iostream>
#include <opencv2/opencv.hpp>using namespace std;
using namespace cv;//包含cv命名空間int main() {//顯示視頻//創建視頻捕獲對象VideoCapture cap;//選擇視頻源//1.使用攝像頭(默認攝像頭,設備索引0)cap.open(0);//2.使用視頻文件cap.open("videos/example1.mp4");//檢查是否成功打開視頻源if (!cap.isOpened()) {cerr << "Error: Could not open video source!" << endl;return -1;}//創建窗口(按照圖像實際尺寸顯示)namedWindow("Video Player", WINDOW_AUTOSIZE);// 視頻幀率信息(可選),實際幀率 = min(視頻源幀率, 1000/delay, 處理能力上限)double fps = cap.get(CAP_PROP_FPS);cout << "Frame rate: " << fps << " FPS" << endl;//主循環:逐幀讀取和顯示while (true) {Mat frame;//從視頻源讀取一幀cap >> frame;//檢查是否讀取到有效幀if (frame.empty()) { cerr << "End of video stream" << endl; break;}//顯示當前幀imshow("Video Player", frame);//檢查按鍵輸入(按ESC鍵退出)char key = waitKey(25); //25ms延遲=40 FPSif (key == 27) { // ASCII碼27=ESC鍵cout << "Exit by user request" << endl;break;}}// 釋放資源cap.release();destroyAllWindows();return 0;
}
Open CV Python顯示圖像
import cv2
import numpy as np#顯示圖像
def show_image(img_path):#讀取圖像->np.ndarrayimg=cv2.imread(img_path)#定義命名一個圖像顯示窗口cv2.namedWindow("Cute")#在指定窗口顯示圖像cv2.imshow("Cute",img)#等待任意按鍵退出cv2.waitKey(0)#關閉所有窗口cv2.destroyAllWindows()show_image("images/cute.jpg")
Open CV Python顯示視頻
import cv2
import numpy as npdef show_video(video_path,device_idx=0,window_name="Video",target_fps=30):#創建視頻捕獲對象cap = cv2.VideoCapture()#選擇視頻源(攝像頭或視頻文件),device_idx=-1表示顯示視頻文件#1.攝像頭(默認攝像頭索引為0)if device_idx!=-1 and not video_path:cap.open(device_idx)#2.視頻文件else:cap.open(video_path)#檢測視頻源是否存在if not cap.isOpened():print(f"Error : Could not open video source!")return#定義視頻播放窗口cv2.namedWindow(window_name,cv2.WINDOW_AUTOSIZE)#主循環:逐幀讀取和顯示while True:ret, frame = cap.read() #ret:bool,視頻幀讀取是否成功;frame:視頻幀圖像#判斷視頻幀是否有效if not ret:print(f"End of video stream!")breakcv2.imshow(window_name,frame) #顯示視頻幀#按ESC鍵退出,控制視頻幀率key=cv2.waitKey(target_fps)if key == 27:print("Exit by user request!")break#釋放資源cap.release()cv2.destroyAllWindows()#顯示示例視頻
show_video(video_path="videos/example.mp4",window_name="Example Video",target_fps=40)