精华内容
下载资源
问答
  • 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:07
    C++ opencv 关键帧提取
  • C++ Opencv imfill 孔洞填充函数
  • 基于C++OpenCV的DNN模块,调用darknet训练的检测模型进行检测;调用摄像头对每帧进行检测。
  • opencv 编译好的win32位的开源库,不必CMAKE,已经编译好了的
  • 主要介绍了C++ opencv实现的把蓝底照片转化为白底照片功能,结合完整实例形式详细分析了C++使用opencv模块进行图片转换操作的相关实现技巧,需要的朋友可以参考下
  • 测试图片已经放到文件中,请自己配置vs2017 opencv 环境再进行测试 代码讲解见:https://blog.csdn.net/LZJSTUDY/article/details/103854590
  • C++ opencv

    2015-08-15 17:52:21
    OPENCV中点追踪C++代码,基于视频和摄像头采集到的视频。
  • VS2013平台利用opencv实现二维码和一维码的识别。需安装配置Z-bar库
  • C++OpenCV格雷码生成.zip

    2022-01-02 19:55:17
    C++OpenCV格雷码生成
  • vs编译好c++ opencv动态库文件,配置好vs即可使用opencv库;亲测可用
  • 本资源包含基于C++OpenCV3.3图像处理源码及素材整理 包含以下源码及用到所有素材文件: 实例1:opencv对单张DCM文件的读取并显示 实例2:opencv读取DCM图像并另存为JPG图像 实例3:opencv批量读取指定路径DCM图像...
  • 软件 2013,环境 opencv2,使用:截取图像某一区域,利用rect函数对图片进行截取
  • opencv2\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();


    }
     

    展开全文
  • 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; } ...
    #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:00
    Canny边缘检测

    函数 : 

    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,准确率不需要太高,尽量识别。
  • 最近接了一个单子,具体任务是首先进行去雾操作,然后进行车牌的检测和分割,话不...opencv2/core/core.hpp> #include<opencv2/imgproc/imgproc.hpp> #include<opencv2/highgui/highgui.hpp> #include&l
  • C++ OpenCV】 Error 调试技巧

    千次阅读 2021-12-16 12:02:51
    C++ 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
  • 这篇博客主要讲解OpenCV中视频读写。 主要涉及到两个API函数: VideoCapture VideoWriter 一、函数简介 1.1 VideoCapture 视频文件读取、摄像头读取、视频流读取 VideoCapture既支持从视频文件(.avi , .mpg格式)...
  • 我们通常需要对视频进行处理,视频数据的获取主要有两种方式: 1.导入视频数据进行处理 # 先实例化再初始化 VideoCapture capture; capture.open("D:/test/video.mp4"); ...capture.isOpened()) ...
  • 基于C++opencv在图像上显示中文方案设计与实现
  • c++ opencv中的normalize简单测试

    千次阅读 2021-10-18 16:36:31
    normalize的具体简介和使用可以参考: 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 再通道分离 // An highlighted block Mat img_hsv; cvtColor(img, img_hsv, COLOR_BGR2HSV); vector<Mat> hsvSplit; split(img_hsv, hsvSplit); Mat h1 = hsvSplit[0]; Mat...
  • opencv 学习笔记一 一、windows下安装opencv 官网下载 https://opencv.org/releases/ github下载 https://github.com/opencv/opencv/releases 下载之后安装(就是解压),可以设置安装路径,安装完成后还需手动...
  • c++ opencv Rectangle

    千次阅读 2020-12-05 23:34:21
    openCV中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:50
    opencv的压缩包是自解压文件,后缀是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]网站能看到所有编码的相关...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 92,080
精华内容 36,832
关键字:

c++ opencv

c++ 订阅