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...\n";
        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两个函数会 完全复制


转载于:https://www.cnblogs.com/aphas1a/p/8363901.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值