【Windows】opencv3.0.0 for vs2013

1、下载并安装opencv3.0.0和vs2013;

附:opencv各版本下载地址

2、为opencv3.0.0配置环境;

a. 查看安装路径,如下: 

b. 配置环境变量:右键我的电脑 >> 属性 >> 高级系统设置 >> 环境变量 >> 系统变量中双击<Path>新建两个路径添加opencv的lib文件的路径;

3、生成配置文件模板;

a. 新建项目(win32控制台应用程序并添加c++文件);

b. 视图 >> 其他窗口 >> 属性管理器 >> 右键Debug丨Win32 >> 添加新项目属性表;

c、命名为opencv_debug,路径默认;

d、右键opencv_debug >> 属性,或直接双击opencv_debug打开属性页;

e、在包含目录和库目录中分别添加以下路径;

f、链接器 >> 输入 >> 附加依赖项中手动添加如下:

g、右键Release丨Win32属性,链接器 >> 输入 >> 附加依赖项中手动添加如下:

4、测试代码如下:

(自行修改49行图像文件名称及格式)

#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);
	imshow("test", 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;
}

测试结果如下:

5、其他项目可以直接添加现有属性表;

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蝉鸣居士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值