赞
踩
1、下载并安装opencv3.0.0和vs2013;
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、其他项目可以直接添加现有属性表;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。