VIGRA stands for "Vision with Generic Algorithms". It's a novel computer vision library that puts its main emphasis oncustomizablealgorithms and data structures.

1、首先,从http://hci.iwr.uni-heidelberg.de/vigra/下载最新源代码,并解压缩;

2、 从http://www.cmake.org/cmake/resources/software.html 下载cmake,并安装;

3、 打开cmake,在where is the source code中添加vigra源代码所在的位置,如:D:/soft/vigra/vigra-1.8.0-src/vigra-1.8.0;在where to build the binaries中添加编译后所存放的位置,如:D:/Program Files/vigra/vs2008。

4、 点击Configure,在弹出的对话框中选择Visual Studio 9 2008;如果有红色框显示,可根据实际情况进行修改,继续点击Configure;

点击Generate;会出现一个错误, CMake Error: Unknown Target referenced : doc_python,修改方法:打开D:/soft/vigra/vigra-1.8.0-src/vigra-1.8.0/ CMakeLists.txt,将其中的

IF(WITH_VIGRANUMPY)

ADD_DEPENDENCIES(PACKAGE_SRC_TAR doc_python)

ENDIF()

替换为:

IF(WITH_VIGRANUMPY AND PYTHON_SPHINX)

ADD_DEPENDENCIES(PACKAGE_SRC_TAR doc_python)

ENDIF()

然后重新打开cmake,再重复上面步骤即可。

5、上述步骤完成之后,在vs2008文件夹中,就会看到有vigra.sln工程文件,打开此工程,分别在Debug和Release下编译整个工程,将会在vs2008/src/impex文件夹下生成Debug和Release的vigraimpex动态和静态库。

默认支持的图像格式包括:BMP、GIF、HDR、PNM、SUN、VIFF,若想支持更多种格式的图像,需要:源代码解压后会有一个” vigra-dependencies-win32-vs8.zip”压缩文件,将此文件解压到当前目录,会产生一个” dependencies”文件夹。在CMake中,在DDEPENDENCY_SEARCH_PREFIX中,将其value设为dependencies所在的目录即可。

此图像库的缺点是速度慢。

例子:

// TestVigra.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include <iostream>

#include <string>

#include "vigra/stdimage.hxx"

#include "vigra/impex.hxx"//Image import and export functions

#include "vigra/edgedetection.hxx"

using namespace vigra;

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

try

{

cout<<"supported formats: "<<impexListFormats()<<endl;

string strImageName = "E:\\vigra\\Image\\base.jpg";

//string strImageName = "E:\\vigra\\Image\\basegray.jpg";

string strOutImage  = "E:\\vigra\\Image\\new.jpg";

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 size

BImage in(info.width(), info.height());

importImage(info, destImage(in));

out = 255;// paint output image white

importImage(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 algorithm

transformImage(srcImageRange(in), destImage(out), linearIntensityTransform(-1, -255));//invert image

exportImage(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 size

BRGBImage 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 size

int 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 algorithms

exportImage(srcImageRange(out1), ImageExportInfo(strOutImage.c_str()));

}

}

catch (StdException &e)

{

cout<<e.what()<<endl;// catch any errors that might have occurred and print their reason

return 1;

}

return 0;

}

vigra1.8.0的使用相关推荐

  1. 估算带卷积核二分类0,3的网络的收敛时间和迭代次数

    制作一个网络分类minst的0和3求出这网络的迭代次数曲线表达式n(δ),和准确率表达式p-max(δ),用预期准确率去估算n,并推算需要的时间. 将minst的28*28的图片缩小到9*9,网络用一 ...

  2. 用vs2010编译vigra静态库及简单使用举例

    1.  从 http://ukoethe.github.io/vigra/ 下载最新源代码vigra-1.10.0-src-with-docu.tar.gz,并加压缩到D:\soft\vigra,生成 ...

  3. 神经网络收敛标准与准确率之间的数学关系

    制作一个带一个3*3卷积核的神经网络,测试集是minst的0和2图片集,将28*28的图片缩小成9*9,隐藏层30个节点所以网络的结构是 S(minst0)-(con3*3)49-30-2-(1,0) ...

  4. 用共振频率去进行图片分类的尝试

    假设有一种物质,这种物质的原子核的质子数和电子数可以不同,允许质子的带电量不同,并且质子带负电,同时这个原子的电子不满足鲍利不相容原理,环境温度是 (1/1.3806505)*10^23k,电子波的频 ...

  5. 收敛标准对迭代次数影响

    制作一个n*n的网络,将收敛标准分别设定在,0.001,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1,观察网络达到平衡时迭代次数的变化. 比如如图的 ...

  6. vue省市区三级联动mysql,js/json,html/jsp

    大家好,我是烤鸭: 省市区三级联动数据及页面: 测试的时候,发现少了几个地区,现在补上了,也优化了下排版. 如果你懒得复制和看的话,这里是打包的下载地址. 之前的资源地址也改了,http://down ...

  7. ZAM 3D 制作3D动画字幕 用于Xaml导出

    ZAM 3D 制作3D动画字幕 用于Xaml导出 原文:ZAM 3D 制作3D动画字幕 用于Xaml导出 原地址-> http://www.cnblogs.com/yk250/p/5662788 ...

  8. 将执行文件转化为bat批处理文件的工具(批处理文件方式提供)

    update 2006.4.25 15:20 支持64kb以上的执行文件/// @echo e 0100 4d 5a 90 0 3 0 0 0 4 0 0 0 ff ff 0 0 >>Da ...

  9. 完整的境外、港澳台、电信、移动、联通、教育网、国内其他ISP的IPv4列表(数据整理日期2022年4月)-IP列表太长只能份2篇发布(1/2)

    完整的境外.港澳台.电信.移动.联通.教育网.国内其他ISP的IPv4列表(数据整理日期2022年4月)-IP列表太长只能份2篇发布(1/2) 综述 境外(不含港澳台)IPv4地址 综述 企业所在地南 ...

最新文章

  1. 【拾贝】版本控制-git 建立Team项目
  2. 云原生生态周报 Vol. 12 | K8s 1.16 API 重大变更
  3. the data structure i like
  4. 出现的是乱码_cad状态栏出现了方框乱码怎么办?
  5. [Apache]安装中出现的问题
  6. java怎么将图片文件转流并在jsp前端显示_web前端—面试题汇总(001-005)
  7. Dell PowerEdge - 如何配置 iDRAC9 和生命周期控制器网络 IP
  8. [ 原创 ]学习笔记-安卓虚拟机终于达到最佳状态了
  9. 【渝粤教育】电大中专工程图学基础作业 题库
  10. 动态规划实战16 leetcode-198. House Robber
  11. 【KE特效仿制】假面骑士 EX-AID NCOP+无彩限的怪灵世界 NCOP
  12. 如何装计算机网络驱动,网卡驱动怎么安装,手把手教你电脑网卡驱动怎么安装...
  13. MySQL grant之后一定要跟随flush privileges么?
  14. 人人商城 邀请人 成功购买会员卡之后返现
  15. 谷歌SEO优化八步走
  16. 金融计量模型(三):工具变量法
  17. ncae的c语言编程高阶怎么考,NCAE考试科目.doc
  18. PHP2020语言排行榜,TIOBE公布了2020年12月编程语言排行榜
  19. 全新Edge浏览器(Edge Chromium)
  20. 洛谷P1747-好奇怪的游戏(BFS)

热门文章

  1. 5行Python代码实现图像分割
  2. autoware框架与功能简介(一)
  3. NanodetPlus网络结构
  4. TensorFlow(2)图(默认图与自定义图) TensorBoard可视化
  5. 获取后台集合并遍历_java集合类汇总,终于出总结了,再也不用担心混淆了
  6. 解决全网90%以上的日期格式转换、日期序列等骚操作问题
  7. Blender纹理基础学习视频教程 CGCookie – Fundamentals of Texturing in Blender
  8. 关于OSD::mkfs: ObjectStore::mkfs failed with error (5) Input/output error问题的解决
  9. apt Could not get lock /var/lib/dpkg/lock 解决方案
  10. 序列化模块--json模块--pickle模块-shelve模块