美文网首页
开学入门第一课,win10+vs2019+c++工程+openc

开学入门第一课,win10+vs2019+c++工程+openc

作者: 青吟乐 | 来源:发表于2019-07-14 16:46 被阅读0次

    Duang Duang Duang Duang——计算机视觉的起步,win10+vs2019+c+++opencv环境让我在踩了不少小坑之后 完成了。。。下面带给大家最新的环境安装步骤

    1,首先确定自己下好了vs2019版本

    基本傻瓜操作,话说巨硬这两年也贼支持自己的编译器发展,引战:vs宇宙第一,网址请移步:https://visualstudio.microsoft.com/zh-hans/?rr=https%3A%2F%2Fwww.microsoft.com%2Fzh-cn%2F,建议下载社区版本,也就是Community的那个版本
    我的版本如下图

    image.png

    2,安装opencv

    没有安装包的,请移步:https://nchc.dl.sourceforge.net/project/opencvlibrary/4.1.0/opencv-4.1.0-vc14_vc15.exe
    选一个位置安装,一路确定即可

    3,配置环境变量

    右键此电脑 -> 属性 -> 高级系统设置,点开以后有个环境变量,点开如图:


    image.png

    得到


    image.png
    用户变量中的path中添加C:\wook_tool\opencv\opencv\build\x64\vc15\bin这个路径,这个路径就是安装opencv完成后的文件夹,不要被我两个连续的opencv文件夹影响,我只是愚蠢的建立了一个名字为opencv的文件夹去安装opencv而已
    如图:
    image.png

    然后在系统变量的path中添加这个路径


    image.png
    一路保存确定即可,至此,环境变量搞定

    3,对opencv中文件进行移动

    将安装文件夹的图中的三个文件copy到c盘的windows的System32文件夹中 image.png

    如图所示


    image.png
    这一步就ok了

    4,在vs2019的c++工程中继承opencv

    首先,我们先来在vs2019中建立一个c++工程


    image.png

    建好是这样子的

    image.png

    然后通过点解决方案资源管理器,右键->新建项,建立一个main函数,如图所示


    image.png

    然后将工具栏上的x86改成x65


    image.png

    再通过视图->其他窗口->属性管理器,让属性管理器的窗口显示在右侧


    image.png

    然后右击Debug|x64,点击添加新项目属性表,如图


    image.png

    点击后,将其命名为OpencvDebugx64,如图,并不是一定要命名成这个,自己随意命名即可,完成后点击添加,如图


    image.png
    它就出来了

    然后双击我们刚才建立的这个选项会出现如图所示的界面


    image.png

    通用属性-->VC++目录-->包含目录中, 点击最右侧的按钮,选择<编辑>,如图


    image.png

    点击编辑,进入编辑界面,我个人感觉其实这是导入包,然后点击下图中红箭头指向的按钮,可以选择目录


    image.png
    image.png
    注意这里直接点开右边的省略号按钮将安装目录的两个目录直接选上即可,这里我选择的目录是C:\wook_tool\opencv\opencv\build\include与C:\wook_tool\opencv\opencv\build\include\opencv2大家按照自己的安装目录来,如图
    image.png

    完成后点确认
    接下来配置工程库lib,照葫芦画瓢,通用属性-->VC++目录-->库目录,如图


    image.png
    点开添加路径 我的是C:\wook_tool\opencv\opencv\build\x64\vc15\lib,大家按照自己的安装目录来,如图 image.png

    点击确认,得到如图


    image.png

    然后是链接库,如下图顺序点击到编辑


    image.png
    image.png

    然后手动输入opencv_world410d.lib ,如图


    image.png

    点击确认得到如图


    image.png

    点击应用--确定就完成了全部的配置

    5,用gamma校正的函数进行测试,代码网上随处可找

    #include <iostream>  
    #include <opencv2\core\core.hpp>  
    #include <opencv2\highgui\highgui.hpp>  
    #include <opencv2\imgproc\imgproc.hpp>  
    #include<cmath>
    using namespace cv;
    
    Mat gammaTransform(Mat& srcImage, float kFactor)
    {
    
        unsigned char LUT[256];
        for (int i = 0; i < 256; i++)
        {
            float f = (i + 0.5f) / 255;
            f = (float)(pow(f, kFactor));
            LUT[i] = saturate_cast<uchar>(f * 255.0f - 0.5f);
        }
        Mat resultImage = srcImage.clone();
    
        if (srcImage.channels() == 1)
        {
    
            MatIterator_<uchar> iterator = resultImage.begin<uchar>();
            MatIterator_<uchar> iteratorEnd = resultImage.end<uchar>();
            for (; iterator != iteratorEnd; iterator++)
            {
                *iterator = LUT[(*iterator)];
            }
        }
        else
        {
    
    
            MatIterator_<Vec3b> iterator = resultImage.begin<Vec3b>();
            MatIterator_<Vec3b> iteratorEnd = resultImage.end<Vec3b>();
            for (; iterator != iteratorEnd; iterator++)
            {
                (*iterator)[0] = LUT[((*iterator)[0])];//b
                (*iterator)[1] = LUT[((*iterator)[1])];//g
                (*iterator)[2] = LUT[((*iterator)[2])];//r
            }
        }
        return resultImage;
    }
    int main()
    {
        Mat srcImage = imread("C:\\study\\c++test\\timg.jpg");
        if (!srcImage.data)
        {
            printf("could not load image...\n");
            return -1;
        }
        //取两种不同的gamma值
        float gamma1 = 3.33f;
        float gamma2 = 0.33f;
        float kFactor1 = 1 / gamma1;
        float kFactor2 = 1 / gamma2;
        Mat result1 = gammaTransform(srcImage, kFactor1);
        Mat result2 = gammaTransform(srcImage, kFactor2);
        imshow("srcImage", srcImage);
        imshow("res1", result1);
        imshow("res2", result2);
        waitKey(0);
        return 0;
    }
    
    

    测试结果


    image.png

    大功告成

    相关文章

      网友评论

          本文标题:开学入门第一课,win10+vs2019+c++工程+openc

          本文链接:https://www.haomeiwen.com/subject/ykmfkctx.html