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 条评论
登录 后参与评论

相关文章

来自专栏我和未来有约会

44 Amazing Silverlight 2.0 Screencasts

Silverlight - Hello World Silverlight - Anatomy of an Application Silverlight - ...

1919
来自专栏分享达人秀

Android用户界面开发概述

相信通过前面15期的学习,Android的开发环境已经基本掌握了,如果仍有问题,欢迎到Android零基础入门技术讨论微信群交流,从本期开始正式来一步一...

18610
来自专栏我和未来有约会

Blend基础-布局控件

布局 什么是布局? Panels控件(其实就是容器控件) 对内部的子控件提供了自动布局功能 可以在容器控件内继续添加容器控件(一个复杂的界面往往是多种容器控件...

1806
来自专栏前端说吧

css笔记 - 张鑫旭css课程笔记之 overflow 篇

如果overflow-x、overflow-y的值相同,则等同于overflow设置了这个值。

461
来自专栏Google Dart

AngularDart Material Design 图标 顶

确保考虑RTL。 具体来说,如果要为RTL UI翻转图标,请使用flip属性。 阅读这些指南,了解何时翻转何时不翻转图标。

806
来自专栏Android学习之路

seekbar

1467
来自专栏糊一笑

移动端APP列表点透事件处理方法

关于点透事件这里不再赘述,如果不清楚的可以上网搜一搜,或者看小火柴的这篇文章。 这里是自己在做移动端时,在列表滑动的时候,遇到的点透问题。出现这个问题的来由是因...

3405
来自专栏前端笔记

【 前端相关 网页组件 】纯CSS3实现 “图片轮播” 效果

使用纯CSS3代码实现简单的图片轮播 image.png 原理介绍 跑马灯图 : image.png 灯图原理 : image.png 基本思路 1.基本...

3019
来自专栏React Native开发圈

React Native 图片查看组件

npm i react-native-image-zoom-viewer--save

722
来自专栏smy

事件委托与阻止冒泡

简单说下事件委托与阻止冒泡 html: <ul class="clearfix" data-type="cityPick"> <li class="...

36110

扫码关注云+社区