用vs2010编译vigra静态库及简单使用举例
1、 从 http://ukoethe.github.io/vigra/ 下载最新源代码vigra-1.10.0-src-with-docu.tar.gz,并加压缩到D:\soft\vigra,生成vigra-1.10.0文件夹;
2、 从http://www.cmake.org/cmake/resources/software.html下载CMake并安装;
3、 打开CMake,Where is thesource code: D:/soft/vigra/vigra-1.10.; Where to build the binaries: D:/soft/vigra/;
4、 点击Configure,-->Specify the generator for this project:Visual Studio 10, Use default nativecompilers, 点击finish;
5、 将VIGRA_STATIC_LIB勾选,点击Generate,如果有红色框出现,再次点击Generate即可;
6、 打开vs2010下的vigra.sln工程,首先选中vigraimpex工程,属性中的RuntimeLibrary,release下改为Multi-threaded(/MT),debug下改为Multi-threaded Debug(/MTd),然后分别在Debug和Release下选SolutionExplorer中的Solution ‘vigra’工程,点击右键,运行”Rebuild Solution”,会在D:\soft\vigra\vs2010\src\impex目录下生成Debug/vigraimpex.lib和/Release/vigraimpex.lib ;
7、新建一个控制台工程TestVigra, (1)、在debug下,将Code Generation下的Runtime Library改为Multi-threaded Debug(/MTd), 在release下,将Runtime Library 改为Multi-threaded(/MT) ;(2)、分别在debug和release下,在vc++ directories中,Include directories: D:\soft\vigra\vigra-1.10.0\include; (3)、分别在debug和release下,属性C/C++的Additional Include Directories:D:\soft\vigra\vigra-1.10.0\include; Preprocessor的Preprocessor Definitions: VIGRA_STATIC_LIB;(4)、属性中Character Set: Use Multi-Byte Character Set
stdafx.h:
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//#pragma once#include "targetver.h"#include <stdio.h>
#include <tchar.h>#include "vigra/stdimage.hxx"
#include "vigra/impex.hxx"//Image import and export functions
#include "vigra/edgedetection.hxx"using namespace vigra;// TODO: reference additional headers your program requires here
stdafx.cpp:
// stdafx.cpp : source file that includes just the standard includes
// TestVigra.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information#include "stdafx.h"// TODO: reference any additional headers you need in STDAFX.H
// and not in this file#ifdef _DEBUG#pragma comment(lib, "D:/soft/vigra/vs2010/src/impex/Debug/vigraimpex.lib")
#else#pragma comment(lib, "D:/soft/vigra/vs2010/src/impex/Release/vigraimpex.lib")
#endif
main.cpp:
#include "stdafx.h"
#include <iostream>
#include <string>using namespace std;int main(int argc, char* argv[])
{try {cout<<"supported formats: "<<vigra::impexListFormats()<<endl;string strImageName = "base.bmp";string strOutImage = "new.bmp";ImageImportInfo info(strImageName.c_str(), 0);//read image//vigra_precondition(info.isGrayscale(), "Sorry, cannot operate on color images");double threshold=200, scale=0.5;if (info.isGrayscale()) {BImage out(info.width(), info.height()); // create a gray scale image of appropriate sizeBImage in(info.width(), info.height());importImage(info, destImage(in));out = 255;// paint output image whiteimportImage(info, destImage(out));// import the image just read//differenceOfExponentialEdgeImage(srcImageRange(in), destImage(out), scale, threshold, 0);//cannyEdgeImage(srcImageRange(in), destImage(out), scale, threshold, 0);// call edge detection algorithmtransformImage(srcImageRange(in), destImage(out), linearIntensityTransform(-1, -255));//invert imageexportImage(srcImageRange(out), ImageExportInfo(strOutImage.c_str()));// write the image to the file} else {BRGBImage out(info.width(), info.height());// create a RGB image of appropriate sizeBRGBImage in(info.width(), info.height());importImage(info, destImage(out));importImage(info, destImage(in));//RGBValue<int> offset(-255, -255, -255);//transformImage(srcImageRange(in), destImage(out), linearIntensityTransform(-1, offset));double sizefactor = 1.2;int nw = (int)(sizefactor*(info.width()-1) + 1.5); // calculate new image sizeint nh = (int)(sizefactor*(info.height()-1) + 1.5);BRGBImage out1(nw, nh);resizeImageSplineInterpolation(srcImageRange(in), destImageRange(out1));// resize the image, using a bi-cubic spline algorithmsexportImage(srcImageRange(out1), ImageExportInfo(strOutImage.c_str()));}} catch (StdException &e) {cout<<e.what()<<endl;// catch any errors that might have occurred and print their reasonreturn 1;}cout<<"ok!"<<endl;return 0;
}
GitHub:https://github.com/fengbingchun/Vigra_Test
相关文章:

39个超实用jQuery实例应用特效
2019独角兽企业重金招聘Python工程师标准>>> 1.Contextual Slideout:上下文滑动特效 2.Revealing Photo Slider:图片幻灯片特效 3.Fancy Box:魔幻盒 4.Scrollable:滚动特效 5.Flip:翻转特效,实现4个方向…

Android.mk和Application.mk文件语法规范说明及举例
以下英文内容摘自:http://www.kandroid.org/ndk/docs/OVERVIEW.html The Android NDK is a set of tools that allows Android application developers to embed native machine code compiled from C and/or C source files into their application packages.NDK d…

ASP.NET Web API实践系列06, 在ASP.NET MVC 4 基础上增加使用ASP.NET WEB API
本篇尝试在现有的ASP.NET MVC 4 项目上增加使用ASP.NET Web API。 新建项目,选择"ASP.NET MVC 4 Web应用程序"。 选择"基本"项目模版。 在Controllers文件夹下添加一个名称为"TestController"的空API控制器。 在引用文件夹中多了以下…

滴滴自动驾驶部门成立独立公司,CTO张博兼任新公司CEO
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)导读:8 月 5 日,滴滴出行官方微信公众号发文,宣布旗下自动驾驶部门升级为独立公司。目前,新成立公司的名称还未曝光,但据官方介绍将专注于自动驾驶…

在ASP.NET MVC下实现树形导航菜单
在需要处理很多分类以及导航的时候,树形导航菜单就比较适合。例如在汽车之家上: 页面主要分两部分,左边是导航菜单,右边显示对应的内容。现在,我们就在ASP.NET MVC 4 下临摹一个,如下: 实现的效…

mongodb学习笔记6--杂项与补充
2019独角兽企业重金招聘Python工程师标准>>> 1。适用场景:持久化缓存层,高效的时效性,用于对象和Json数据的存储,高伸缩性的场景,大尺寸,低价值的数据存储。 不适用:高度事务性的场景…

GraphSAGE:我寻思GCN也没我厉害!
作者 | 郭必扬来源 | SimpleAI(ID:SimpleAI_1)众所周知,2017年ICLR出产的GCN现在是多么地热门,仿佛自己就是图神经网络的名片。然而,在GCN的风头中,很多人忽略了GCN本身的巨大局限——Transductive Learnin…

CxImage的编译及简单使用举例
1、 从http://sourceforge.net/projects/cximage/下载最新的CxImage 702源码; 2、 解压缩后,以管理员身份打开CxImageFull_vc10.sln工程,在编译之前先将每个工程属性的Character Set由原先的Use Unicode Character Set改为Use Multi-ByteC…

如何使用好android的可访问性服务(Accessibility Services)
原文:http://android.eoe.cn/topic/android_sdk * 主题* Manifest声明和权限 可访问性服务声明 可访问性服务配置 AccessibilityService方法 获得事件细节 示例代码 主要的类*AccessibilityService AccessibilityServiceInfo AccessibilityEvent AccessibilityReco…

自动驾驶人的福音!Lyft公开Level 5部署平台Flexo细节
作者 | Mathias Gug等,Lyft Level 5 软件工程师译者 | Lucy编辑 | 夕颜出品 | AI科技大本营(ID:rgznai100)导读:经过一年半的 bootstrapping(一种再抽样统计方法),Lyft 让 Level 5 实现区分非常…

Cygwin的安装及在Android jni中的简单使用举例
Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnussolutions公司开发的自由软件。Cygwin是许多自由软件的集合,Cygwin的主要目的是通过重新编译,将POSIX系统上的软件移植到Windows上。Cygwin包括了一套库,该库在win32系统…

university, school, college, department, institute的区别
这些个词没有太大区别,有时候有些词是可以通用的,而有些用法则是随着地域时间的不同而变迁。一般说来,college译作“学院”,它是university (综合性大学)的一个组成部分,例如,一所综…

XML简介及举例
可扩展标记语言(eXtensibleMarkup Language,简称XML),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言&#…

关于事务的传播特性和隔离级别的问题
REQUIRED:业务方法需要在一个事务中运行。如果方法运行时,已经处在一个事务中,那么加入到该事务,否则为自己创建一个新的事务。 NOT_SUPPORTED:声明方法不需要事务。如果方法没有关联到一个事务,容器不会为…

[Big Data - Kafka] kafka学习笔记:知识点整理
一、为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2.冗余:消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的&q…

自然语言处理十问!独家福利
最近,NLP 圈简直不要太热闹!预训练模型频频刷新榜单,让一众研究者、开发者“痛并快乐着”。自 2018 年 10 月,Google 提出 BERT 以来,NLP 领域预训练模型的发展仿佛坐上了火箭,完全控制不住。BERT 出世前&a…

BERT的成功是否依赖于虚假相关的统计线索?
作者 | 李理来源 | 个人博客导读:本文介绍论文Probing Neural Network Comprehension of Natural Language Arguments,讨论BERT在ACRT任务下的成绩是否依赖虚假的统计线索,同时分享一些个人对目前机器学习尤其是自然语言理解的看法。目录论文…

【电子基础】模拟电路问答
模拟电路基础知识问答整理 mystery 1、温度对半导体材料的导电性能有什么影响? 答:温度对半导体的导电性能有很大影响。当温度升高时,半导体材料内的自由电子和空穴数量迅速增加,半导体的导电性能将迅速提高。 2、什么是本征半导体和杂质半导…

XML解析简介及Xerces-C++简单使用举例
XML是由World WideWeb联盟(W3C)定义的元语言。它已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。XML在不同的语言里解析方式都是一样的,只不过实现的语法不…
[干货]Kaggle热门 | 用一个框架解决所有机器学习难题
新智元推荐 来源:LinkedIn 作者:Abhishek Thakur 译者:弗格森 【新智元导读】本文是数据科学家Abhishek Thakur发表的Kaggle热门文章。作者总结了自己参加100多场机器学习竞赛的经验,主要从模型框架方面阐述了机器学习过程中可能会…

gtest简介及简单使用
gtest是一个跨平台(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)的C测试框架,有google公司发布。gtest测试框架是在不同平台上为编写C测试而生成的。从http://code.google.com/p/googletest/downloads/detail?namegtest-1.7.0.zip&can2&q下…

新浪微博推广网站的一些实践体会
本以为微博推广很难,每天都要刷粉刷内容的,也本以为做微博推广也很简单,一不卖产品、二不卖服务的,目的单纯灵活性强些,做了之后才发现都不是那么回事,微博虽然也过了“火了”,但新媒体还真是不…

AI和大数据如何落地智能城市?京东城市这6篇论文必读 | KDD 2019
来源 | 京东城市(ID: icity-jd)作为世界数据挖掘领域的最高级别的学术会议,ACM SIGKDD(国际数据挖掘与知识发现大会,简称 KDD)将于 2019 年 8 月 4 日—8 日在美国阿拉斯加州安克雷奇市举行。自 1995 年以来…

OSError: Could not find library geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so
OSError: Could not find library geos_c or load any of its variants [libgeos_c.so.1, libgeos_c.so 解决: sudo vim /etc/ld.so.conf 添加:/opt/source/geos-3.5.0/build/lib sudo ldconfig

五分钟搭建BERT服务,实现1000+QPS,这个Service-Streamer做到了
作者 | 刘欣简介:刘欣,Meteorix,毕业于华中科技大学,前网易游戏技术总监,现任香侬科技算法架构负责人。之前专注游戏引擎工具架构和自动化领域,2018年在GDC和GoogleIO开源Airtest自动化框架,广泛…

Nagios+pnp4nagios+rrdtool 安装配置为nagios添加自定义插件(三)
nagios博大精深,可以以shell、perl等语句为nagios写插件,来满足自己监控的需要。本文写mysql中tps、qps的插件,并把收集到的结果以图形形式展现出来,这样输出的结果就有一定的要求了。 编写插件tps qps check_qps 插件如下内容 #…

OpenSSL简介及在Windows、Linux、Mac系统上的编译步骤
OpenSSL介绍:OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 SSL是SecureSockets Layer(安全套接层协议)的缩写,可以在Interne…

Guava Cache本地缓存在 Spring Boot应用中的实践
概述 在如今高并发的互联网应用中,缓存的地位举足轻重,对提升程序性能帮助不小。而 3.x开始的 Spring也引入了对 Cache的支持,那对于如今发展得如火如荼的 Spring Boot来说自然也是支持缓存特性的。当然 Spring Boot默认使用的是 SimpleCache…

Windows 8.1 Preview(Windows Blue)预览版简体中文官方下载(ISO完整版镜像)
Windows 8.1是微软继Windows 8以来的又一全新力作,又名Windows Blue(视窗蓝,专注蓝屏30年),个人觉得Win8还是比较流畅的但大众始终觉得还是有很多需要改进或者改善的,如今微软为了迎合大众需求对Win8进行升…
Linux下编辑器vi/vim的使用介绍
vi编辑器是所有Unix及Linux系统下标准的编辑器。对Unix及Linux系统的任何版本,vi编辑器是完全相同的。 基本上vi可以分为三种状态,分别是命令模式(commandmode)、插入模式(insert mode)和底行模式(last line mode),各模式的功能为࿱…