vigra1.8.0的使用
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的使用相关推荐
- 估算带卷积核二分类0,3的网络的收敛时间和迭代次数
制作一个网络分类minst的0和3求出这网络的迭代次数曲线表达式n(δ),和准确率表达式p-max(δ),用预期准确率去估算n,并推算需要的时间. 将minst的28*28的图片缩小到9*9,网络用一 ...
- 用vs2010编译vigra静态库及简单使用举例
1. 从 http://ukoethe.github.io/vigra/ 下载最新源代码vigra-1.10.0-src-with-docu.tar.gz,并加压缩到D:\soft\vigra,生成 ...
- 神经网络收敛标准与准确率之间的数学关系
制作一个带一个3*3卷积核的神经网络,测试集是minst的0和2图片集,将28*28的图片缩小成9*9,隐藏层30个节点所以网络的结构是 S(minst0)-(con3*3)49-30-2-(1,0) ...
- 用共振频率去进行图片分类的尝试
假设有一种物质,这种物质的原子核的质子数和电子数可以不同,允许质子的带电量不同,并且质子带负电,同时这个原子的电子不满足鲍利不相容原理,环境温度是 (1/1.3806505)*10^23k,电子波的频 ...
- 收敛标准对迭代次数影响
制作一个n*n的网络,将收敛标准分别设定在,0.001,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1,观察网络达到平衡时迭代次数的变化. 比如如图的 ...
- vue省市区三级联动mysql,js/json,html/jsp
大家好,我是烤鸭: 省市区三级联动数据及页面: 测试的时候,发现少了几个地区,现在补上了,也优化了下排版. 如果你懒得复制和看的话,这里是打包的下载地址. 之前的资源地址也改了,http://down ...
- ZAM 3D 制作3D动画字幕 用于Xaml导出
ZAM 3D 制作3D动画字幕 用于Xaml导出 原文:ZAM 3D 制作3D动画字幕 用于Xaml导出 原地址-> http://www.cnblogs.com/yk250/p/5662788 ...
- 将执行文件转化为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 ...
- 完整的境外、港澳台、电信、移动、联通、教育网、国内其他ISP的IPv4列表(数据整理日期2022年4月)-IP列表太长只能份2篇发布(1/2)
完整的境外.港澳台.电信.移动.联通.教育网.国内其他ISP的IPv4列表(数据整理日期2022年4月)-IP列表太长只能份2篇发布(1/2) 综述 境外(不含港澳台)IPv4地址 综述 企业所在地南 ...
最新文章
- 【拾贝】版本控制-git 建立Team项目
- 云原生生态周报 Vol. 12 | K8s 1.16 API 重大变更
- the data structure i like
- 出现的是乱码_cad状态栏出现了方框乱码怎么办?
- [Apache]安装中出现的问题
- java怎么将图片文件转流并在jsp前端显示_web前端—面试题汇总(001-005)
- Dell PowerEdge - 如何配置 iDRAC9 和生命周期控制器网络 IP
- [ 原创 ]学习笔记-安卓虚拟机终于达到最佳状态了
- 【渝粤教育】电大中专工程图学基础作业 题库
- 动态规划实战16 leetcode-198. House Robber
- 【KE特效仿制】假面骑士 EX-AID NCOP+无彩限的怪灵世界 NCOP
- 如何装计算机网络驱动,网卡驱动怎么安装,手把手教你电脑网卡驱动怎么安装...
- MySQL grant之后一定要跟随flush privileges么?
- 人人商城 邀请人 成功购买会员卡之后返现
- 谷歌SEO优化八步走
- 金融计量模型(三):工具变量法
- ncae的c语言编程高阶怎么考,NCAE考试科目.doc
- PHP2020语言排行榜,TIOBE公布了2020年12月编程语言排行榜
- 全新Edge浏览器(Edge Chromium)
- 洛谷P1747-好奇怪的游戏(BFS)
热门文章
- 5行Python代码实现图像分割
- autoware框架与功能简介(一)
- NanodetPlus网络结构
- TensorFlow(2)图(默认图与自定义图) TensorBoard可视化
- 获取后台集合并遍历_java集合类汇总,终于出总结了,再也不用担心混淆了
- 解决全网90%以上的日期格式转换、日期序列等骚操作问题
- Blender纹理基础学习视频教程 CGCookie – Fundamentals of Texturing in Blender
- 关于OSD::mkfs: ObjectStore::mkfs failed with error (5) Input/output error问题的解决
- apt Could not get lock /var/lib/dpkg/lock 解决方案
- 序列化模块--json模块--pickle模块-shelve模块