caffe segnet opencv pgm格式图像操作 之坑

el/2024/4/20 0:13:45

项目并没有结束,但就想吐槽一下软件里的防不胜防的坑,这些坑几乎可以让人浪费掉绝大多数的时间,不得不说,调试这些坑真的很痛苦。。。

caffe segnet 篇:

          在github上直接下载的源码包似乎有个bug,至少google上也有人这么说,编译时说什么缺少函数max(double,floate)的定义,下载最近的rc2也有一些问题,基本的如hdf5.h无法找到,hdf5、hdf5_hl库找不到等等,这些都是在Mkefile.config和Mikefile里INCLUDE和LIBRAYERS里的问题,需要包含如/usr/lib/linux-x86-gnu/serial等的路径(路径是回想,可能不正确,需要还请自行百度一下)。还有包含opencv相关文件时,Libraies里包含 -opencv-imgcodes 。


pgm格式图像处理篇:

         切记,opencv读取图像一定要小心,有可能读入的结果和你预期的大不一样,而且opencv并不会显出错误,最终的处理结果将可想而知,如果没有意识到这个,排错过程可想而知。。。。。。

        首先看一下,imread函数的声明:

// C++: Mat based
Mat imread(const string& filename, int flags=1 );// C: IplImage based
IplImage* cvLoadImage(const char* filename, int iscolor=CV_LOAD_IMAGE_COLOR );// C: CvMat based
CvMat* cvLoadImageM(const char* filename, int iscolor=CV_LOAD_IMAGE_COLOR );

此处,就不列出python的函数声明。随着2.x和3.x版本号不断更新, OpencvC++版本号数据结构和C版本号有较大差异,前者降低了指针的大量使用。使用方法更加便捷,因此建议多使用前者。以C++版本号函数进行分析,形參列表包含:

  • filename : 待载入图像(包含:文件路径和文件名称。图像在project默认路径下的可省略文件路径);
  • flags : 标志符,指定图像载入颜色类型。默认值为1:

    • IMREAD_UNCHANGED / CV_LOAD_IMAGE_UNCHANGED :不加改变的载入原图。
    • IMREAD_GRAYSCALE / CV_LOAD_IMAGE_GRAYSCALE :图像转为灰度图(GRAY,1通道)。
    • IMREAD_COLOR / CV_LOAD_IMAGE_COLOR :图像转为彩色图(BGR,3通道)。
    • IMREAD_ANYDEPTH / CV_LOAD_IMAGE_ANYDEPTH :不论什么位深度。假设载入的图像不是16-bit位图或者32-bit位图。则转化为8-bit位图。
    • IMREAD_ANYCOLOR / CV_LOAD_IMAGE_ANYCOLOR :不论什么彩色。单独使用的时候等价于 IMREAD_UNCHANGED / CV_LOAD_IMAGE_UNCHANGED
    • > 0 :返回3通道的彩色图,可是假设是4通道(RGBA)。当中Alpha须要保留的话,不建议这么使用。由于一旦这么使用。就会导致Alpha通道被剥离掉,此时建议使用负值。
    • = 0 :返回灰度图像。
    • < 0 :返回具有Alpha通道的图像。

假设你喜欢使用imread("file.jpg")缺省參数的形式载入图像。务必要留意你所载入后的图像可能已经不是你原本想要的图像了。




http://www.ngui.cc/el/5181853.html

相关文章

relu激活函数解读

Tensorflow学习——ReLu 转载 2017年07月17日 22:39:50 预训练的用处&#xff1a;规则化&#xff0c;防止过拟合&#xff1b;压缩数据&#xff0c;去除冗余&#xff1b;强化特征&#xff0c;减小误差&#xff1b;加快收敛速度。标准的sigmoid输出不具备稀疏性&#xff0c;需要…

TensorFlow基础学习(函数、接口、拓展、实例)

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统&#xff0c;其命名来源于本身的运行原理。Tensor(张量)意味着N维数组&#xff0c;Flow(流)意味着基于数据流图的计算&#xff0c;TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据…

Tensorflow构建卷积神经网络

【方向】 2017-08-24 16:31:56 浏览8502 评论2 云栖社区 函数 http test variables 神经网络 摘要&#xff1a; 本文主要和大家分享如何使用Tensorflow从头开始构建和训练卷积神经网络。这样就可以将这个知识作为一个构建块来创造有趣的深度学习应用程序了。 0. 简介 …

Tensorflow 读入数据

Tensorflow 学习笔记&#xff1a;Input Pipeline - Dataset 原创 2017年11月23日 13:29:47 标签&#xff1a;Tensorflow /dataset /机器学习 /算法 /pipeline Dataset是Tensorflow里面一个比较重要的概念&#xff0c;我们知道机器学习算法需要大概的数据来训练data model. 所…

Tensorflow官方教程(中文译)

https://www.w3cschool.cn/tensorflow_python/tensorflow_python-bm7y28si.html

Tensorflow dataset

相关用法总是会忘&#xff0c;特此转载记下&#xff0c;同时在此向原创作者表示感谢。 Dataset是Tensorflow里面一个比较重要的概念&#xff0c;我们知道机器学习算法需要大概的数据来训练data model. 所以Dataset就是用来做这么一件重要的事情&#xff1a;定义数据pipline&…

SWIG实现Python封装调用C/C++代码

TensorFlow中的SWIG实现Python调用C/C代码 2017年01月05日 18:51:45 阅读数&#xff1a;2832 转自here SWIG是个帮助使用C或者C编写的软件能与其它各种高级编程语言进行嵌入联接的开发工具。SWIG能应用于各种不同类型的语言&#xff0c;包括常用脚本编译语言&#xff0c;例如Pe…

tensor 操作

用TensorFlow做好一个机器学习项目&#xff0c;需要具备多种代码能力&#xff1a; 工程开发能力&#xff1a;怎么读取数据、怎么设计与运行Computation Graph、怎么保存与恢复变量、怎么保存统计结果、怎么共享变量、怎么分布式部署数据操作能力&#xff1a;怎么将原始数据一步…

tensorflow 优化器选择

在很多机器学习和深度学习的应用中&#xff0c;我们发现用的最多的优化器是 Adam&#xff0c;为什么呢&#xff1f; 下面是 TensorFlow 中的优化器&#xff0c;https://www.tensorflow.org/api_guides/python/train 在 keras 中也有 SGD&#xff0c;RMSprop&#xff0c;Adagrad…

tensorflow 网络修剪 剪枝操作

背景知识 模型剪枝&#xff08;Model Pruning&#xff09;是一种模型压缩方法&#xff0c;对深度神经网络的稠密连接引入稀疏性&#xff0c;通过将“不重要”的权值直接置零来减少非零权值数量&#xff0c;其历史可追溯到上世纪 90 年代初。 在 Optimal Brain Damage【2】中&…