Opencv4.0:遍历Mat图像空间、读取摄像头

GitHub

https://github.com/gongluck/Opencv3.4-study.git

#include "opencv2/opencv.hpp"
using namespace cv;
#pragma comment(lib, "opencv_calib3d340d.lib")
#pragma comment(lib, "opencv_core340d.lib")
#pragma comment(lib, "opencv_dnn340d.lib")
#pragma comment(lib, "opencv_features2d340d.lib")
#pragma comment(lib, "opencv_flann340d.lib")
#pragma comment(lib, "opencv_highgui340d.lib")
#pragma comment(lib, "opencv_imgcodecs340d.lib")
#pragma comment(lib, "opencv_imgproc340d.lib")
#pragma comment(lib, "opencv_ml340d.lib")
#pragma comment(lib, "opencv_objdetect340d.lib")
#pragma comment(lib, "opencv_photo340d.lib")
#pragma comment(lib, "opencv_shape340d.lib")
#pragma comment(lib, "opencv_stitching340d.lib")
#pragma comment(lib, "opencv_superres340d.lib")
#pragma comment(lib, "opencv_video340d.lib")
#pragma comment(lib, "opencv_videoio340d.lib")
#pragma comment(lib, "opencv_videostab340d.lib")

int main()
{
    //显示图片
    Mat image = imread("test.png");
    namedWindow("window");
    imshow("window", image);

    //遍历Mat图像空间
    Mat mat(500, 300, CV_8UC3);
    //mat.create(500, 300, CV_8UC3);
    int size = mat.rows*mat.cols*mat.elemSize();
    int esize = mat.elemSize();
    for (int i = 0; i < size; i += esize)
    {
        mat.data[i] = 0;//B
        mat.data[i+1] = 255;//G
        mat.data[i+2] = 0;//R
    }
    namedWindow("Mat");
    imshow("Mat", mat);

    //读取摄像头
    VideoCapture cam;
    bool res = cam.open("rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov");
    //bool res = cam.open(0);
    Mat capture;
    namedWindow("Cap");
    if (cam.isOpened())
    {
        while (true)
        {
            //cam.read(capture);
            if (!cam.grab())//读取并解码
                continue;
            if(!cam.retrieve(capture))//YUV转RGB
                continue;
            imshow("Cap", capture);
            waitKey(1);
        }
        cam.release();
    }
        
    waitKey(0);
    system("pause");
    return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非著名程序员

Palette让你的应用风格统一,绚丽多彩

今天这个是Android Material Design系列之Palette,Material Design系列的第五篇文章了,由于最近这个系列文章浏览量比较低...

1868
来自专栏Petrichor的专栏

opencv: 轮廓绘制 详细拆解(图示+源码)

884
来自专栏CVPy

OpenCV检测篇(二):笑脸检测

上篇分享了如何做猫脸检测,本文与之具有知识上的连贯性,所以建议没读过前一篇的先去阅读一下前一篇。这篇主要给大家介绍下如何使用OpenCV进行笑脸检测。

1.5K1
来自专栏人工智能LeadAI

OpenCV人脸识别之三:识别自己的脸

本系列人脸识别文章用的是opencv2,最新版的opencv3.2的代码请参考文章: OpenCV之识别自己的脸——C++源码放送(请在上一篇文章末尾查看) ...

4544
来自专栏深度学习思考者

人脸识别 | 如何解析URL,并给出人脸检测结果

本文给出最简单的人脸检测测试代码,与常见的场景不同的是,需要从互联网抓取图像,并非本地上存在的图像。 所需依赖: OpenCV NumPy urllib...

19910
来自专栏Pulsar-V

SLAM初探(四)

OpenCV基础 这里我就不做过多的描述性问题,现在OpenCV在许多有关计算机视觉方面得到许多的应用。 OpenCV获取视频的方法及其图像转化问题 获取视频及...

3297
来自专栏红色石头的机器学习之路

图像凸性检测函数convexityDefects在Python2.7下使用opencv3.0的问题

最近在学习Python下的OpenCV,在图像的凸性检测中,发现opencv3.0下的convexityDefects函数对图像的凸性缺陷处理有错误。不知道是o...

2350
来自专栏Pulsar-V

OpenCV-Mat与Base64之间的相互转换

PS:不得不吐槽一句这年头WebSocket转MAT这么复杂,C++后端都隐藏实力去了吗?

4252
来自专栏书山有路勤为径

编码蓝幕/证件照背景替换

此时你会发现背景可能是红色,不是预料的蓝色,这是因为OpenCv会把彩色图像读取成BGR(蓝绿红)图像

722
来自专栏CVer

利用OpenCV和深度学习实现人脸检测

今天偷点儿懒,就没有及时整理最新的paper,还请各位看官谅解。这里整理了一份前段时间做的小demo,实现献丑了 本文基于OpenCV3.3.1或以上版本(如O...

3K15

扫码关注云+社区