-
2022-04-25 21:30:01
废话不多说直接上代码了,因为比较简单:
1.读取视频数据
#include<iostream> #include<opencv2/highgui.hpp> #include<opencv2/imgcodecs.hpp> #include<opencv2/opencv.hpp> using namespace cv; using namespace std; /* 读取视频数据 */ void main() { string path = "F:/testImage/Megamind.avi"; VideoCapture cap(path); Mat img; while (true) { cap.read(img); imshow("Image", img); waitKey(20); } }
其中waikey()中设置的越小刷新的就越快相当于加速播放;越大越慢
2.读取摄像头数据
#include<iostream> #include<opencv2/highgui.hpp> #include<opencv2/imgcodecs.hpp> #include<opencv2/opencv.hpp> using namespace cv; using namespace std; /* 读取摄像头数据 */ void main() { VideoCapture cap(0); Mat img; while (true) { cap.read(img); imshow("Image", img); waitKey(1); } }
更多相关内容 -
C++ opencv 关键帧提取
2021-09-07 17:12:07C++ opencv 关键帧提取 -
C++ Opencv imfill 孔洞填充函数
2022-03-25 10:31:02C++ Opencv imfill 孔洞填充函数 -
C++ OpenCV DNN 调用摄像头实时检测
2020-10-23 08:46:29基于C++ 和OpenCV的DNN模块,调用darknet训练的检测模型进行检测;调用摄像头对每帧进行检测。 -
c++ Opencv 编译完开源库
2018-11-27 22:05:48opencv 编译好的win32位的开源库,不必CMAKE,已经编译好了的 -
C++ opencv实现的把蓝底照片转化为白底照片功能完整示例
2020-08-25 06:47:52主要介绍了C++ opencv实现的把蓝底照片转化为白底照片功能,结合完整实例形式详细分析了C++使用opencv模块进行图片转换操作的相关实现技巧,需要的朋友可以参考下 -
C++ opencv 图像 扭曲旋转 双线性插值 双三次插值 和 畸变矫正 双线性插值 实现
2020-01-06 11:48:20测试图片已经放到文件中,请自己配置vs2017 opencv 环境再进行测试 代码讲解见:https://blog.csdn.net/LZJSTUDY/article/details/103854590 -
C++ opencv
2015-08-15 17:52:21OPENCV中点追踪C++代码,基于视频和摄像头采集到的视频。 -
一、二维码识别程序 C/C++ openCV实现
2017-03-31 15:39:35VS2013平台利用opencv实现二维码和一维码的识别。需安装配置Z-bar库 -
C++OpenCV格雷码生成.zip
2022-01-02 19:55:17C++OpenCV格雷码生成 -
vs编译好c++ opencv动态库文件
2019-06-14 11:20:57vs编译好c++ opencv动态库文件,配置好vs即可使用opencv库;亲测可用 -
基于C++的OpenCV3.3图像处理源码整理.txt
2021-08-04 11:37:24本资源包含基于C++的OpenCV3.3图像处理源码及素材整理 包含以下源码及用到所有素材文件: 实例1:opencv对单张DCM文件的读取并显示 实例2:opencv读取DCM图像并另存为JPG图像 实例3:opencv批量读取指定路径DCM图像... -
opencv截取图像中某一区域的方法_opencv_carefullybgn_C++OPENCV_rect函数_
2021-09-30 11:19:52软件 2013,环境 opencv2,使用:截取图像某一区域,利用rect函数对图片进行截取 -
C++ opencv读取视频保存成图片并对图片进行部分截取
2022-03-04 11:19:00opencv2\core\core.hpp> #include<opencv2\highgui\highgui.hpp> #include<opencv2\imgproc\imgproc.hpp> using namespace cv; #include<iostream> #include<vector> using namespace ...#include<opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>
using namespace cv;
#include<iostream>
#include<vector>
using namespace std;
bool drawing_box = false;
bool gotBox = false;
Rect box;
Point downPoint;
Point destination;void mouseRectHandler(int event, int x, int y, int flags, void* param)
{
switch (event)
{
case EVENT_MOUSEMOVE:
if (drawing_box)
{if (x >= downPoint.x && y >= downPoint.y)
{
box.x = downPoint.x;
box.y = downPoint.y;
box.width = x - downPoint.x;
box.height = y - downPoint.y;
}if (x >= downPoint.x && y <= downPoint.y)
{
box.x = downPoint.x;
box.y = y;
box.width = x - downPoint.x;
box.height = downPoint.y - y;
}if (x <= downPoint.x && y <= downPoint.y)
{
box.x = x;
box.y = y;
box.width = downPoint.x - x;
box.height = downPoint.y - y;
}if (x <= downPoint.x && y >= downPoint.y)
{
box.x = x;
box.y = downPoint.y;
box.width = downPoint.x - x;
box.height = y - downPoint.y;
}
}
break;case EVENT_LBUTTONDOWN:
drawing_box = true;
downPoint = Point(x, y);
cout << "起点: " << downPoint << endl;
break;case EVENT_LBUTTONUP:
drawing_box = false;
destination = downPoint = Point(x, y);
cout << "终点: " << destination << endl;
gotBox = true;
break;
default:
break;
}
}void demo9()
{
VideoCapture video("D:\\data\\test.mp4");
//VideoCapture video(0);
video.set(CAP_PROP_FRAME_WIDTH, 1920);
video.set(CAP_PROP_FRAME_HEIGHT, 1080);
if (!video.isOpened())
{
cout << "加载视频失败,请检查文件路径设置!" << endl;
return;
}
long totalFrameNumber = video.get(CAP_PROP_FRAME_COUNT);
bool flags = true;
long currentFrame = 0;
Mat frame;
namedWindow("video", 1);
setMouseCallback("video", mouseRectHandler, NULL);for (;;)
{
video >> frame;
if (!frame.data)
break;
rectangle(frame, box, Scalar(255, 255, 0), 2);
imshow("video", frame);
if (gotBox)
break;
if (waitKey(50) == 'q')
break;
}//setMouseCallback("video", NULL, NULL);
for (;;)
{
video >> frame;
if (!frame.data)
break;
rectangle(frame, box, Scalar(0, 255, 0), 2);
imshow("video", frame);
if (waitKey(30) == 'q')
break;
stringstream str;
str << currentFrame << ".jpg";
cout << "正在处理第" << currentFrame << "帧" << endl;
printf("\n");
if (currentFrame % 20 == 0)
{
frame= frame(box);
imwrite("D:\\data\\img\\zhen\\" + str.str(),frame);
}
if (currentFrame >= totalFrameNumber)
{
flags = false;
}
currentFrame++;
}
video.release();
}
-
C++OpenCV调用摄像头,图像的实时处理基础
2022-05-11 19:21:29opencv2/opencv.hpp> using namespace std; using namespace cv; int main(int argc, char** argv) { VideoCapture cap(0); if (!cap.isOpened()) { printf("Can not open a camera\n"); return -1; } ...#include<iostream> #include<opencv2/opencv.hpp> using namespace std; using namespace cv; int main(int argc, char** argv) { VideoCapture cap(0); if (!cap.isOpened()) { printf("Can not open a camera\n"); return -1; } while (true) { Mat frame, hsvedges, edges; cap >> frame; if (frame.empty()) break; cvtColor(frame, hsvedges, COLOR_BGR2HSV); imshow("hsvedges", hsvedges); cvtColor(frame, edges, COLOR_BGR2GRAY); Canny(edges, edges, 175, 255, 3); imshow("edges", edges); //等待 30 秒,如果按键则推出循环 if (waitKey(30) >= 0) break; } waitKey(0); return 0; }
-
C++ Opencv cv::Canny()边缘检测
2022-01-22 04:13:00Canny边缘检测函数 :
cv::Canny( Mat gray_img, Mat dst_img, int lowThreshold,int highThreshold, int kernel_size );
参数:
gray_img : 输入图片,灰度图
Dst_img : 输出图片,边缘图,和输入图片一样大小
lowThreshold : 最小阈值
highThreshold : 最大阈值
Kernel_size : 内核大小,常用3
描述:
边缘检测器生成的图像是输入图像的全尺寸,但只需要写入单通道图像,因此我们首先转换为灰度单通道图像。
使用带有标志的 cv::cvtColor() 将蓝色、绿色、红色 (BGR) 图像转换为灰色%u2010
比例,cv::COLOR_BGR2GRAY。
示例:
#include <opencv2/opencv.hpp> using namespace cv; int main(int argc, char** argv) { Mat inputImage; Mat grayImage; Mat cannyImage; namedWindow("Input Image", WINDOW_AUTOSIZE); namedWindow("Canny Image", WINDOW_AUTOSIZE); inputImage = imread("C:\\Users\\10985\\source\\repos\\CVDemo01\\test02_original\\10.png"); //转为灰度图 cvtColor(inputImage, grayImage, COLOR_BGR2GRAY); //边缘加测 Canny(grayImage, cannyImage, 10, 100, 3); imshow("Input Image", inputImage); imshow("Canny Image", cannyImage); waitKey(0); return 0; }
-
c++opencv批量读图转灰度并修改尺寸
2022-04-21 15:42:09我首先将图片名称改为了1.jpg 2...opencv2/opencv.hpp> #include <iostream> using namespace std; using namespace cv; using namespace cv::ml; string savedImageName; stringstream ss1; string s... -
c++ opencv的简单数字识别
2021-06-08 15:42:39视频内固定位置有一段GPS车速,需要提取每一帧的车速作为信号标志。车速为:0~120,准确率不需要太高,尽量识别。 -
C++OpenCV实战——车牌去雾、车牌检测、分割
2022-04-24 12:15:58最近接了一个单子,具体任务是首先进行去雾操作,然后进行车牌的检测和分割,话不...opencv2/core/core.hpp> #include<opencv2/imgproc/imgproc.hpp> #include<opencv2/highgui/highgui.hpp> #include&l -
【C++ OpenCV】 Error 调试技巧
2021-12-16 12:02:51C++ OPENCV中的ERROR调试技巧 -
c++ opencv 模板匹配matchTemplate
2022-02-18 13:49:02#include <iostream> #include <opencv2/core/core.hpp>...opencv2/opencv.hpp> using namespace cv; int main() { Mat srcImage = imread("XXX.jpg"); //原图 Mat tempImage = imread("xx -
C++ opencv之视频读写(VideoCapture,VideoWriter)
2020-12-24 11:33:45这篇博客主要讲解OpenCV中视频读写。 主要涉及到两个API函数: VideoCapture VideoWriter 一、函数简介 1.1 VideoCapture 视频文件读取、摄像头读取、视频流读取 VideoCapture既支持从视频文件(.avi , .mpg格式)... -
C++OpenCV读取视频文件和调用摄像头操作
2022-04-11 20:19:26我们通常需要对视频进行处理,视频数据的获取主要有两种方式: 1.导入视频数据进行处理 # 先实例化再初始化 VideoCapture capture; capture.open("D:/test/video.mp4"); ...capture.isOpened()) ... -
基于C++与opencv在图像上显示中文方案设计与实现
2022-05-12 20:01:13基于C++与opencv在图像上显示中文方案设计与实现 -
c++ opencv中的normalize简单测试
2021-10-18 16:36:31normalize的具体简介和使用可以参考: OpenCV之图像归一化(normalize) - 葫芦娃508 - 博客园 下面是我做的测试及结果: vectora = { 1,2,3,4 }; //normalize(a, a,1,0,NORM_L1);//newa=a/suma==>0.1,0.2,0.3,0.4 /... -
c++ opencv 彩色图rgb 转换hsv 再通道分离
2022-03-29 10:34:04c++ opencv 彩色图rgb 转换hsv 再通道分离 // An highlighted block Mat img_hsv; cvtColor(img, img_hsv, COLOR_BGR2HSV); vector<Mat> hsvSplit; split(img_hsv, hsvSplit); Mat h1 = hsvSplit[0]; Mat... -
c++ opencv4.5.5 学习笔记(一) Visual Studio 2022 + OpenCV4.5.5 配置详解
2022-01-10 11:06:29opencv 学习笔记一 一、windows下安装opencv 官网下载 https://opencv.org/releases/ github下载 https://github.com/opencv/opencv/releases 下载之后安装(就是解压),可以设置安装路径,安装完成后还需手动... -
c++ opencv Rectangle
2020-12-05 23:34:21openCV中cvRectangle与cv::rectangle绘制矩形边框 我的例子:-1代表填充 Rect格式:(x,y,w,h)。 cv::rectangle(image_new, Rect(last_x, 16, x_new- last_x, 32), Scalar(0, 0, 0), -1, 1,0); ... -
C++ Opencv 安装配置
2021-06-26 22:49:50opencv的压缩包是自解压文件,后缀是exe,也就是执行的时候解压自己内部的数据。 2,解压之后放到C盘 3,配置环境变量 前辈们推荐配置用户变量,编辑PATH 4,配置工程 这4个目录,把C:\opencv和... -
c++ opencv 保存视频数据
2020-07-28 10:59:34使用opencv 保存视频时,视频格式为 .avi; 保存为 .mp4文件时,需要使用 FFMPEG进行保存。 CV_FOURCC 视频编码格式,使用四个字符表示帧编码格式。在[http://www.fourcc.org/codecs.php]网站能看到所有编码的相关...