zoukankan      html  css  js  c++  java
  • [学习opencv]图像读取写入,加减乘除

    opencv这个图像库两年前就会用了,本科毕业设计就是用的他,不过其中有很多函数直到现在我也没怎么用过。

    关于这个库的学习,我自己的目标是只需要学会怎样调用库函数完成目标就可以了,至于原理性的东西我就不去深究了,原理的东西我会在matlab中实现的。

    平台是ubuntu+opencv2,具体版本我忘了。不过2之后的应该都可以。

    第一个先练手的程序,我尽量用C++版的:

    #include "cv.h"
    #include "highgui.h"
    #include <iostream>
    
    using namespace std;
    using namespace cv;
    
    int main(int argc, char* argv[])
    {
            Mat img1 = imread("maki.jpg"); 
            Mat img2 = imread("misaka.jpg");
    
            int height=img1.rows;                //行数
            int width=img1.cols;                   //列数
            int dims=img1.dims;                    //维数
            cout<<height<<"  "<<width<<"  "<<dims<<endl;
    
            Mat tmp(height,width,CV_8UC3,Scalar(2,2,2));  //产生一个[height width 3]所有元素全为2的矩阵
            Mat re;    
            //运算符重载真是让人喜欢
            re=img1+Scalar(100,100,100);                    //图像相加
            imshow("image1", re);
    
            re=img1-img2;                      //图像相减
            imshow("image2",re);
    
            re=img1*2;                      //图像和一个数相乘    
            imshow("image3",re);
    
            re=img1/2;                    //图像和一个数相除
            imshow("image4",re);
    
            re=img1.mul(tmp);            //img1和tmp每个元素相乘
            imshow("image5",re);
            Vec3i s=re.at<Vec3b>(1,1);   //数据访问
            cout<<s.val[0]<<"  "<<s.val[1]<<"  "<<s.val[2]<<endl;
    
            imwrite("re.jpg",re);
            waitKey();
    
            return 0;
    }

    vim需要重新设置以方便编译,.exrc文件加入如下代码:

    " C++的编译和运行
    map <F6> :call CompileRunGpp()<CR>
    func! CompileRunGpp()
    exec "w"
    exec "!g++ `pkg-config opencv --libs --cflags opencv` % -g -o %<"
    exec "! ./%<"
    endfunc

    以后写完直接按F6就可以编译运行了。

  • 相关阅读:
    JavaSE之流程控制结构
    JavaSE的基本语法
    排序算法
    Java实现归并排序
    Java中线程池的介绍
    Java锁的升降级及synchoronized优化
    ThreadLocal应用与原理
    spring bean 实例化bean前后进行相应的设置
    maven依赖配置和依赖范围
    springmvc校验
  • 原文地址:https://www.cnblogs.com/tiandsp/p/3029755.html
Copyright © 2011-2022 走看看