opencv这玩意是真难搞呀。

先吐槽下。。。。。

下面进入正文。

1准备工具:

opencv3.0+vs2013

这里面不提供链接下载,自行谷歌百度。

2配置环境:

a.打开下载好的opencv(解压过程)

记住你安装/解压的目录例如我的就是

b.打开环境变量设置

右击我的电脑-》属性-》高级系统设置-》环境变量

-》系统变量下的path

-》双击path/编辑path

-》添加opencv的路径G:\OpenCv3.0\opencv\build\x64\vc12\bin和$(OPENCV)\x86\vc12\lib(解释下后面为什么是美元符,由于前面加了G:\OpenCv3.0\的路径所以后面可以直接加上其相对路径)

确认好了后就配置成功了。

3建立配置文件模板:

a.首先打开vs2013-》新建项目-》新建win32控制台应用程序

这里取名为test

记得点上空项目-》完成

b.新建项目

-》添加项目-》添加c++文件

这里名称随便取

 c然后点击视图-》其他窗口-》属性管理器

d右击Debug|Win32,添加新项目属性表

取名opencv_debug

添加后进行对文件的配置,双击新建的属性表-》点击VC++目录

点击包含目录在里面添加"G:\OpenCV3.0\opencv\build\include\opencv","G:\OpenCV3.0\opencv\build\include\opencv2"和"G:\OpenCV3.0\opencv\build\include"

点击库目录在里面添加"G:\OpenCV3.0\opencv\build\x64\vc12\lib","G:\OpenCV3.0\opencv\build\x86\vc12\lib","G:\OpenCV3.0\opencv\build\x64\vc12\staticlib"和"G:\OpenCV3.0\opencv\build\x86\vc12\staticlib"

ps:这里添加x86是为了提高程序的兼容性。

点击链接器-》输入-》附加依赖项,在依赖项中添加opencv_ts300d.lib和opencv_world300d.lib

Release的属性表的差异就在依赖项:在依赖项中添加opencv_ts300.lib和opencv_world300.lib

保存即可

4测试

测试代码:

#include <core/core.hpp>
#include <highgui/highgui.hpp>
#include <math.h>
#include<iostream>
using namespace cv;
using namespace std;
void expone(char *imagesrc){//Ip1Image的方式读取,课本源码
CvPoint center;
double scale = -3;
IplImage* image = cvLoadImage(imagesrc);
if (!image) return;
center = cvPoint(image->width / 2, image->height / 2);
for (int i = 0; i<image->height; i++)
for (int j = 0; j<image->width; j++) {
double dx = (double)(j - center.x) / center.x;
double dy = (double)(i - center.y) / center.y;
double weight = exp((dx*dx + dy*dy)*scale);
uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);
ptr[0] = cvRound(ptr[0] * weight);
ptr[1] = cvRound(ptr[1] * weight);
ptr[2] = cvRound(ptr[2] * weight);
}
cvSaveImage("copy.png", image);
cvNamedWindow("test", 1);
cvShowImage("test", image);
cvWaitKey();
}
void exptwo(char *imagesrc){//Mat方式进行读取
Mat image = imread(imagesrc);
if (!image.data)return;
double scale = -3;
CvPoint center = cvPoint(image.rows / 2, image.cols / 2);
for (int i = 0; i < image.cols; i++){
for (int j = 0; j < image.rows; j++){
double dx = (double)(j - center.x) / center.x;
double dy = (double)(i - center.y) / center.y;
double weight = exp((dx*dx + dy*dy)*scale);
for (int k = 0; k < 3; k++){
image.at<Vec3b>(j, i)[k] *= weight;//特别注意要从每行开始读取否则会出现错误
}
}
}
imwrite("mate.png", image);
//namedWindow("boy", 1);*/
imshow("girl", image);
waitKey();
}
int main(){
char *imagesrc = "../test.png";//相对路径
int ch = 0;
///简陋菜单///
do{
cout << "1.IplImage方式显示" << endl;
cout << "2.Mat方式显示" << endl;
cout << "0.退出" << endl;
cin >> ch;
switch (ch)
{
case 1:expone(imagesrc); break;
case 2:exptwo(imagesrc); break;
}
} while (ch!=0);
return 0;
}

测试成功^.^

后面其他项目的话可以直接添加现有属性表进行配置

在win10下给vs2013配置opencv3.0的更多相关文章

  1. VS2013配置 OpenCV3.0【实测有效】

    下载OpenCV3.0.0 到OpenCV官网下载对应版本http://opencv.org/downloads.html,然后安装到相应目录,本例是安装到D:\opencv300目录中. 配置环境变 ...

  2. VS2013配置opencv3.0.0 (win8.1)

    今天下载了最新版本的opencv3.0.0,之前一直是opencv2.4.8 点击.exe文件,我将解压后的文件夹放在D:\盘,取名opencv30,D:\opencv30 添加环境变量:D:\ope ...

  3. Win10 下Cmake编译配置 Opencv3.1 + Cuda7.5 + VS2013

    折腾了三天终于配置成功了,在此写下编译配置的全部步骤和遇到的很多坑. 整体介绍: OpenCV 中 CUDA 实现的函数还不是太多,使用前要在OpenCV的官网上确认以下你想要的功能是否已经实现,否则 ...

  4. 64 位系统 vs2013 配置 OpenCV-3.1.0

    参考:64 位系统 vs2013 配置 opencv3.0 1. 环境准备 进入官网 http://opencv.org/,下载最新版本的 opencv(以本文 opencv-3.1.0 为例,.ex ...

  5. vs2013配置opencv3.2.0

    工具/原料 l VS2013 l OpenCV3.20http://jaist.dl.sourceforge.net/project/opencvlibrary/opencv-win/3.2.0/op ...

  6. VS2012 配置 OpenCV3.0

    VS2012 配置 opencv3.0,相比之前的版本,3.0的配置简单了好多. 通过配置属性文件,可以做到一次配置,重复使用! 根据文章的操作在 win7 64bit VS2012 下成功配置 op ...

  7. Win10下Android studio配置

    Win10下Android studio配置 一.安装Android Studio的准备工作 1.下载好JDK,去官网上找一个下载下来 2.安装JDK.并配置环境变量.安装过程:本人将使用的是jdk- ...

  8. ubuntu14.04 python2.7 安装配置OpenCV3.0

    环境:ubuntu14.04  python2.7 内容:安装并配置OpenCV3.0 今天按照OpenCV官网上的步骤装了OpenCV但是,装好之后python提示“No module named ...

  9. win10下安装vs2013无法安装解决方案

    win10下安装vs2013无法安装解决方案 win+r,输入cmd进入命令行 进入界面后选择修复 进入vs_ultimate文件所在目录,输入: vs_ultimate /Uninstall    ...

随机推荐

  1. 【Unity Shaders】Diffuse Shading——创建一个基本的Surface Shader

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  2. 一个优化极点的ViewHolder

    代码中有注释: 使用方法: 1.可以在listview,gridview,stageView直接继承LazyAdapter使用 2.下面有Demo 代码 ViewHolder代码: import an ...

  3. 15_Android中任务栈

     1.一个应用程序一般都是由多个activity组成的. 2.任务栈(task stack)(别名backstack后退栈)记录存放用户开启的activity的. 3.一个应用程序一被开启系统就给 ...

  4. Android APP新的“优雅”退出方式--EventBus大显身手

    最近在研究eventBus..很多小伙伴不知道他有什么用.. 前篇介绍了EventBus的基本使用 这里简单举一个例子,就是退出APP 转载请注明出处:http://blog.csdn.net/win ...

  5. mysql进阶(七)limit的用法

    limit是mysql的语法 select * from table limit m,n 其中m是指记录开始的index,从0开始,表示第一条记录 n是指从第m+1条开始,取n条. select *  ...

  6. LeetCode之“树”:Balanced Binary Tree

    题目链接 题目要求: Given a binary tree, determine if it is height-balanced. For this problem, a height-balan ...

  7. javase--day_01

    一.关键字: /*                            关键字:  被java语言复与特定含义的单词.      特点: 组成关键字单词的字母全部小写.   注意: A:goto和c ...

  8. 学习C++模板,初体验

    最近,看了很多码神级人物的代码,发现其代码很炫酷,尤其对模板的使用,作为小码农,感觉已经落伍了,所以应该发奋图强,好好学习和掌握模板这个东西. 模板是什么呢?有人说一个模板就是一个创建类或函数的蓝图或 ...

  9. 网站开发进阶(十一)如何将一个jsp页面嵌套在另一个页面中

    如何将一个jsp页面嵌套在另一个页面中 这个在做网页中常要用到,有些通用的内容可集中放在一个页面文件中,其它要用到这些内容的页面只需要包含(引用)这个通用文件即可.这样便于维护,如果有很多网页,当通用 ...

  10. 面试之路(16)-归并排序详解(MergeSort)递归和非递归实现

    归并排序的概念及定义 归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的.然后再把有序子序列合并为整体有序序列. 归并排序是建立 ...