zoukankan      html  css  js  c++  java
  • Xcode+OpenCV3.4.0 折腾(4)

    ~ 开始使用OpenCV了 ~

    今天尝试的是 容器 Mat 的小部分操作

    内容来自于
    https://www.bilibili.com/video/av17748771/?from=search&seid=3213762283999816753#page=4

    视频中的src,dst的用法,感觉是
    src = source      源
    dst = destination 目的
    可以看清楚数据传送的方向

    构造一个 Mat

    比如现在打开了一张图片 test1.png

    	Mat src = imread("/Users/Aphas1a/Documents/C/OpenCV/opencvtest/test1.png");
        if (src.empty())
        {
            cout << "could not load...
    ";
            return 1;
        }
       
    

    构造一个和 Mat src 一样的 Mat 的方法。注释掉的是达到一样目的的操作

    	dst = Mat(src.rows, src.cols, src.type());
        //dst = Mat(src.size(),src.type());
        //dst = src.clone();
        //src.copyTo(dst);
    
    

    把彩图转灰度图
    cvtColor(src, dst, COLOR_BGR2GRAY);
    
    
    • 最新几个版本的OpenCV已改为COLOR_BGR2GRAY类似形式,视频里是CV_BGR2GRAY
    • 因为OpenCV的颜色空间以 BGR 为主,在这里用COLOR_RGB2GRAY时如果用imshow()显示图片似乎没什么关系,但不知道其他地方混用会怎么样 0. o

    单纯的构建一个自定义的 Mat (但是用法看手册有25种。。具体要用哪种还是要用了再查吧 Orz)
    cv::Mat::Mat()	
    

    举一个应用的例子:
    建立一个【100 × 100】像素的,【每通道8位 无符号 char型 3通道】的,
    每个像素初始化颜色为红色的(OpenCV的颜色空间以 BGR 为主)的 Mat
    PS. 向量长度和通道数要一致

    cv::Mat::Mat(100, 100, CV_8UC3, Scalar(0,0,255));	
    

    还有2个函数不知道怎么归类乱放在这吧
    cv::Mat::zeros()  // 类似matlab生成0矩阵
    cv::Mat::eye()  // 类似matlab生成单位矩阵
    
    

    **Mat对象使用的要点**
    • 使用了OpenCV的c++接口,不用考虑内存分配问题
    • 赋值操作和拷贝构造函数只会复制 头部分
    • 使用clone和copyTo两个函数会 完全复制

  • 相关阅读:
    Memcached存储溢出
    Memcached windows安装
    Memcached简介
    HTTP请求中怎样选择Get和Post方式
    【cogs 597】【dp】交错匹配
    &lt;LeetCode OJ&gt; 58. Length of Last Word
    codevs1051
    最重要的 Java EE 最佳实践
    android-xBuild apk差分与合成,zip差分与合成,lua打包,apk打包,png/jpg图片压缩
    [Phonegap+Sencha Touch] 移动开发26 Android下的sencha touch程序,转屏时,Ext.Viewport不能触发orientationchange事件的解决的方法
  • 原文地址:https://www.cnblogs.com/aphas1a/p/8363901.html
Copyright © 2011-2022 走看看