学习顺序 数字图像处理
2019-05-06 15:19:26 u014090429 阅读数 65

1.caffe模型输入

维度为四维,顺序分别是(N,C,H,W),分别表示(图片数目,每张图片通道数,每张图片高,每张图片宽)

2.cv2.resize() 函数

使用cv2.resize时,参数输入时宽×高×通道,需要注意

3.caffe.io.load_image函数

使用caffe.io.load_image()读进来的是RGB格式和0~1(float)

所以在进行识别之前要在transformer中设置transformer.set_raw_scale('data',255)(缩放至0~255)

以及transformer.set_channel_swap('data',(2,1,0)(将RGB变换到BGR)

4.opencv读取图像函数

使用opencv读取图像默认读进来的是BGR格式

 

2014-02-16 20:49:56 a4875030 阅读数 555

前两天学习了c++,感觉一直学习着也不是办法,于是今天看了看opencv的论坛,看到了一个MFC跟opencv的结合。里面有一个例子,于是下下来,下面就根据这个例子学习MFC,还可以学习图像处理跟opencv。好,第一个反应就是编译运行这个软件。

首先的是安装opencv1.0.

具体参考是

http://www.opencv.org.cn/index.php/VC6%E4%B8%8B%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AEOpenCV1.0

 

发下例程链接:

http://www.opencv.org.cn/index.php/%E5%9C%A8MFC%E4%B8%AD%E4%BD%BF%E7%94%A8OpenCV

 

调试了这个程序。会出现如下的一系列问题,具体参考了

http://www.cnblogs.com/mlv5/archive/2011/02/25/1964355.html

发现学习是一个发现问题解决问题的一个过程,想这么一个问题,很有可能网上就找不到任何资料,而这个问题就需要我们好好的分析,而这个能力就要我们培养。

1、第一个问题,也许是MFC初学者常犯的错误:fatal error C1083: Cannot open precompiled header file: 'Release/CVMFC.pch': No such file or directory

属于MFC基本问题,只需要执行build->rebuild all即可,应该是与StdAxf这系列文件有关。原因应该还复杂一些,但是现在我只注意到这一个。

2、当编译通过时,出现了如下错误

Linking...
CameraDSA.obj : error LNK2001: unresolved external symbol _IID_ISampleGrabber
CameraDSA.obj : error LNK2001: unresolved external symbol _CLSID_NullRenderer
CameraDSA.obj : error LNK2001: unresolved external symbol _CLSID_SampleGrabber
CameraDSA.obj : error LNK2001: unresolved external symbol _LOOK_UPSTREAM_ONLY
CameraDSA.obj : error LNK2001: unresolved external symbol _CLSID_CaptureGraphBuilder2
CameraDSA.obj : error LNK2001: unresolved external symbol _IID_ICaptureGraphBuilder2
Release/CVMFC.exe : fatal error LNK1120: 6 unresolved externals
Error executing link.exe.
CVMFC.exe - 7 error(s), 0 warning(s)

可以看出,是和CameraDSA.cpp有关。而CameraDSA.cpp只引用了一个头文件以及库,在程序中预处理代码如下

#include "stdafx.h"                         //  2010.8.14 修改
#pragma comment(lib,"Strmiids.lib") 

可以看出,这个程序需要用例程中的DirectShow\Lib文件夹下的strmiid.lib文件。当我们在tools->option->directories中的lib file中把此文件夹添加到最后时,我们惊奇地发现,继续编译仍然是这7个错误。

究竟是否使用了这个库文件,我们可以通过修改库文件名称来判断,将此句改为:

#pragma comment(lib,"Strmiids1.lib") 
LINK : fatal error LNK1104: cannot open file "Strmiids1.lib"

看来VC++的确能找到strmiids.lib这个文件。

而究竟例程中包含的这个库文件strmiid.lib是否含有_IID_ISampleGrabber这些外部符号呢?可以在windows中的cmd模式下通过这条命令来分析strmiid.lib文件:

C:\Program Files\Microsoft Visual Studio\VC98\Bin>dumpbin f:\CVMFC\DirectShow\Lib\strmiids.lib /all f:\a.txt

即lib文件的主要信息都打印到了a.txt中。

显示如下:

Dump of file f:\CVMFC\DirectShow\Lib\strmiids.lib
File Type: LIBRARY
Archive member name at 8: /               
3DEDB7C8 time/date Wed Dec 04 16:07:36 2002
         uid
         gid
       0 mode
    5AA7 size
correct header end
    854 public symbols
  ...
     B83A _IID_ISampleGrabber
  ...

既然例程中包含的strmiid.lib含有这些外部符号,那么可能的原因只有一个,就是windows系统SDK包含了strmiid.lib,而这货因为版本过高而在VC++6.0中无法支持,但VC++6.0检查到C:\Program Files\Microsoft Visual Studio\VC98\LIB中的strmiid.lib发现不兼容,就只报出这7个错误,不向下查找了自备的strmiid.lib了。

解决方法非常简单,但非常有用:就是在tools->option中的lib file把例程的lib文件夹前置到最顶头,就发现这7个错误消失了。

3、最后一个问题比较简单,网上也有相应的答案

could not execute Invalid directory
win32 error 267

方法:分别设置program->setting中的Release和Debug中的 可执行调试的话 和 工作目录 一致即可。

2019-04-21 18:10:31 johnwillwin 阅读数 34

从OpenCV和《数字图像处理》开始

2019-05-31 15:50:00 c19961227 阅读数 21

在这里贴一些我认为很好的帖子

VGG16讲解

LSTM讲解。先看第一个,再看第二个,结合着看。
【转】人人都能看懂的LSTM https://blog.csdn.net/UFv59to8/article/details/78931023
如果你还没搞懂LSTM 网络,那本文绝对值得一看
http://www.dataguru.cn/article-11339-1.html
基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN的比较
https://www.cnblogs.com/skyfsm/p/6806246.html
CTPN
https://www.cnblogs.com/skyfsm/p/9776611.html
入门代码
https://github.com/zhaozhengcoder/Machine-Learning
with python 用法
https://www.cnblogs.com/wanglei-xiaoshitou1/p/9238275.html

2018-11-13 20:22:07 weixin_43247080 阅读数 25

记录一下学的图像处理,怕自己忘了。
若是叠加两个图像,两张图片大小不一致,用addweighted函数会出错。
要重新定义一个Mat 型,构建与小图片,(可以简单的称为logo,好区分)相关的矩形区域。
代码如下:

Mat  image3 = image2(Rect(80,35,logo.cols,logo.rows));//前两个数值(定位)的改变会改变logo在大图片上的位置,不能超出范围
 addWeighted(image3,quanzhi1,image1,quanzhi2,0.0,image3);
 imshow("jiehe", image2);
a

ddweighted(第一张图,权值,第二张图,权值,两图相加后再加的数值,叠加后输出的图)
还有创建滑动条函数的时候窗口的建立,一定要在createTrackbar()前面,不然在窗口处不会显示滑动条。
createTrackbar(滑度条名字,滑度条所在窗口的名字,&滑块的位置(值),滑块可到的最大位置,回调函数名,用户给回调函数的数据(默认值为0))

没有更多推荐了,返回首页