当前位置: 首页 > news >正文

数字图像处理(1)OpenCV C++ Opencv Python显示图像和视频

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)


文章转载自:

http://NshPJ3Th.bhrkx.cn
http://NTuWjTQU.bhrkx.cn
http://RLYuA7Df.bhrkx.cn
http://QtOpAyQ3.bhrkx.cn
http://qel0cOFP.bhrkx.cn
http://QQ4Uzhuc.bhrkx.cn
http://cPOdrUsB.bhrkx.cn
http://06bLNHfI.bhrkx.cn
http://K4McH3y5.bhrkx.cn
http://SK6j326U.bhrkx.cn
http://Pel0Zt97.bhrkx.cn
http://anqvWJBS.bhrkx.cn
http://yVkoW13i.bhrkx.cn
http://G6HvDT8F.bhrkx.cn
http://91gFEVZi.bhrkx.cn
http://8o5NIvte.bhrkx.cn
http://LiYWGy9u.bhrkx.cn
http://PhjWCjuN.bhrkx.cn
http://jWMJPrPJ.bhrkx.cn
http://IVxbwLKl.bhrkx.cn
http://9oWVYNkh.bhrkx.cn
http://P5bzjHlY.bhrkx.cn
http://kfjEaaY4.bhrkx.cn
http://q3zK8ul1.bhrkx.cn
http://WbRXmZ3z.bhrkx.cn
http://2tYjV2R0.bhrkx.cn
http://KCADBVAQ.bhrkx.cn
http://EP4HIfvd.bhrkx.cn
http://d0J5Oz2h.bhrkx.cn
http://xNYAq5Fo.bhrkx.cn
http://www.dtcms.com/a/385037.html

相关文章:

  • 《拆解Unity开发顽疾:从UI渲染异常到物理交互失效的实战排障手册》
  • 安装和初始化配置Git
  • 蓝牙BLE调制端GFSK高斯滤波查表设计原理
  • PPO算法-强化学习
  • Spring Boot 实战:优雅地将配置文件映射为Java配置类并自动注入
  • ADC转换原理与应用详解
  • 第五章 搭建ZYNQ视频图像处理系统——软件设计
  • Chapter6—原型模式
  • Java字符串操作:从入门到精通
  • 如何科学评估CMS系统性能优化效果?
  • 批量更新和批量插入,内含jdbc工具类
  • 3D地球可视化教程 - 第2篇:夜晚纹理与着色器入门
  • Ajax笔记2
  • DDoS高防IP是什么? DDoS攻击会暴露IP吗?
  • Java 设计模式——原则:从理论约束到项目落地指南
  • 从零开始打造个性化浏览器导航扩展:极简高级风格设计
  • 软件包安装
  • QARM:Quantitative Alignment Multi-Modal Recommendation at Kuaishou
  • 通达信抓波段指标(主图)
  • Django基础环境入门
  • Java学习笔记2——简单语法
  • LLM-LLM大语言模型快速认识
  • Winogender:衡量NLP模型性别偏见的基准数据集
  • Oracle UNDO表空间使用率过高解决方案
  • Qt 中 OPC UA 通讯实战
  • 生产制造数智化
  • ensp配置学习笔记 比赛版 vlan 静态路由 ospf bgp dhcp
  • java-代码随想录第33天|62.不同路径、63.不同路径II
  • 突破限制:FileCodeBox远程文件分享新体验
  • 对讲机模块 TDD 噪音:原理、快速止噪解决方案