• OpenCV4.0学习笔记


    1.读取显示图像

     1 #include<opencv2/opencv.hpp>
     2 #include<iostream>
     3 using namespace cv;
     4 using namespace std;
     5 int main(int artc, char** argv)
     6 {
     7     //Mat src = imread("D:/学习与突破/OpenCV/C++与OpenCV/002.jpg");
     8     Mat src = imread("D:/学习与突破/OpenCV/C++与OpenCV/002.jpg", IMREAD_GRAYSCALE);
     9     if (src.empty())
    10     {
    11         printf("could not load image...
    ");
    12         return -1;
    13     }
    14     namedWindow("input", WINDOW_NORMAL);
    15     imshow("input", src);
    16     waitKey(0);
    17     return 0;
    18 }
    imread imshow

    2.彩色图像与灰度图像转换  图像保存

     1 #include<opencv2/opencv.hpp>
     2 #include<iostream>
     3 using namespace cv;
     4 using namespace std;
     5 int main(int artc, char** argv)
     6 {
     7     Mat src = imread("D:/学习与突破/OpenCV/C++与OpenCV/002.jpg");  //彩色图像
     8     if (src.empty())
     9     {
    10         printf("could not load image...
    ");
    11         return -1;
    12     }
    13     namedWindow("input", WINDOW_NORMAL);
    14     imshow("input", src);
    15     waitKey(0);
    16     Mat gray;
    17     cvtColor(src,gray,COLOR_BGR2GRAY);
    18     imshow("input",gray);
    19     imwrite("D:/学习与突破/OpenCV/C++与OpenCV/write002.jpg", gray);
    20     waitKey(0);
    21     return 0;
    22 }
    BGR2Gray imwrite

    3.Mat对象

    Mat对象在C++内存中分头部和数据部分,头部信息包括:图像长高、图像通道数、类型等,数据部分是每一个像素点处的灰度值信息。

    Mat对象的克隆和复制会生成一个全新的内存对象,Mat对象的赋值不会生成新的内存对象,赋值前后的两个指向同一个内存。

     1 #include<opencv2/opencv.hpp>
     2 #include<iostream>
     3 using namespace cv;
     4 using namespace std;
     5 int main(int artc, char** argv)
     6 {
     7     Mat src = imread("D:/学习与突破/OpenCV/C++与OpenCV/002.jpg", IMREAD_GRAYSCALE);
     8     //克隆
     9     Mat m1 = src.clone();  
    10     //复制
    11     Mat m2;
    12     src.copyTo(m2);
    13     //赋值
    14     Mat m3 = src;
    15 
    16     //创建空白图像
    17     Mat m4 = Mat::zeros(src.size(),src.type());
    18     Mat m5 = Mat::zeros(Size(512,1024),CV_8UC3);
    19     Mat m6 = Mat::ones(Size(512, 512), CV_8UC3);
    20 
    21     Mat kernel = (Mat_<char>(3, 3) << 0, -1, 4, 2, 4, 9, 1, -3, 3);
    22 }
    Mat克隆 复制 赋值

    4

  • 相关阅读:
    【转】京东抢购服务高并发实践
    【转】聊聊高并发系统之队列术
    深入研究Clang(八) Clang代码阅读之打log读流程1
    【转】保证分布式系统数据一致性的6种方案
    TextureView实现视频播放
    Spring之FactoryBean
    支付宝系统架构
    【转】高并发系统之限流特技
    Go语言中new和make的区别
    Linux下安装Beego:go install: cannot install cross-compiled binaries when GOBIN is set
  • 原文地址:https://www.cnblogs.com/yangmengke2018/p/10609939.html
Copyright © 2020-2023  润新知