![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图像处理
DX_dove
致力于计算机视觉的开发。
展开
-
matlab中的图像类型
matlab中的图像类型主要有下列四种:索引图像、灰度图像、RGB图像、二值图像。 下面介绍下这些图像的特点与应用索引图像 索引图像包括一个数据矩阵X,一个颜色映像矩阵Map。其中Map是一个包含三列、若干行的数据阵列,其中每个元素的值均为[0, 1]之间的双精度浮点型数据。Map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。在MATLAB中,索引图像是从像素值到颜色映射表值的“直接映射”。像转载 2016-10-21 16:48:13 · 2677 阅读 · 0 评论 -
PatchMatch核心算法(一)
最近patchmatch算法,这是一个很神奇的算法,利用概率的思想进行快匹配。 有些文章也讲过Patchmatch算法,写的不错,我这里就用最好理解的语言记录下自己的理解吧。patchmatch 算法可以分为3步。下面用图的方式展示出来; 第一步:初始化 翻译为:初始化,讲A图中每一个像素,随机的赋予一个便宜量,在B图中找到一个像素与之对应。 图中为选取了全图的3个像素作为展示。原创 2018-01-17 11:25:02 · 21997 阅读 · 8 评论 -
python读取文件夹中的图片
下面记录一下Python读取文件夹下图片的两种方法:import osimagelist = os.listdir('./images/')#读取images文件夹下所有文件的名字import globimagelist= sorted(glob.glob('./images/' + 'frame_*.png'))#读取带有相同关键字的图片名字,比上一中方法好...原创 2018-06-22 20:34:58 · 28225 阅读 · 0 评论 -
tensorflow 中batch normalize(slim方式) 的使用
具体参看这篇博客:https://blog.csdn.net/jiruiYang/article/details/77202674 说的不错,而且这份githun代码值得借鉴:https://github.com/soloice/mnist-bnfrom __future__ import absolute_importfrom __future__ import divisionfro...转载 2018-07-09 21:14:13 · 6860 阅读 · 2 评论 -
tensorflow中常用的几种权重矩阵初始化的方式
这里总结几种权重矩阵的初始化方式:1:截断的正态分布:def init_matrix(shape): return tf.truncated_normal(shape, mean=0, stddev=0.1)2.xavier_initializer()法:这个初始化器是用来保持每一层的梯度大小都差不多相同W = tf.contrib.layers.xavier_init...原创 2018-07-09 22:38:58 · 6671 阅读 · 0 评论 -
LSTM-tf.nn.static_rnn与tf.nn.dynamic_rnn.用法详解
最近研究LSTM的网络,想将LSTM应用到图像上,查资料发现,用到图像上的LSTM叫ConvLSTM,在这里记录下最核心的两个函数用法: tf.nn.static_rnn与tf.nn.dynamic_rnn.这两个函数是tensoflow针对RNN的LSTM提供的两个函数,两个函数的功能上其实差不多,但是tf.nn.dynamic()函数更加灵活.这里我还主要讲解函数用法没和两个函数输入数据...原创 2018-07-23 11:06:23 · 6299 阅读 · 0 评论 -
Ubuntu下快速安装opencv2//opencv3
Ubuntu下安装opencv其实非常简单,之前下安装包,多线程编译,再make,而且opencv3有个包一直下不下来,其实用下面几种方法安装,可谓是方便实用。 1.conda安装,这要求你电脑安装Anoconda,不过一般用python开发的程序员,应该都装了这个。 然后直接输入:conda install -c https://conda.anaconda.org/menpo op...原创 2018-08-08 09:51:43 · 2715 阅读 · 0 评论 -
tensorflow的几个常用函数(tf.tile(),tf.padding(),tf.expend_dims())
最近看tensorflow,有几个很常用的tensor操作函数,但又不是那么直观理解,看看资料,这里记录一下:1.tf.tile(): 函数参数:tile( input, #输入 multiples, #同一维度上复制的次数 name=None)tile() 平铺之意,用于在同一维度上的复制什么叫同一维度的复制呢,如果是多维该怎么复制呢,应该...原创 2018-09-07 22:25:21 · 3812 阅读 · 0 评论 -
bpg编码器在ubuntu14.04上的配置
最近研究了下BPG编码器的安装编译: 分享下安装的辛酸历程1.由于安装了anaconda的问题,默认Python始终为python3.6,改不回2.7.最后发现问题是要取消bashrc文件中的anaconda中的链接配置语句:sudo gedit ~/.bashrc#注释掉anaconda的配置,注释如下图source ~/.bashrc#让修改生效然后就可以按照下...原创 2018-09-10 10:30:38 · 1801 阅读 · 0 评论 -
pytorch 读取数据方法总结
用pytorch读取数据,确实要比tensorflow简单,但是也得熟悉半个小时左右.下面总结下我的体验,直接用代码(1)torch.utils.data.Dataset(2)torch.utils.data.DataLoader这两个类搭配的数据读取代码:import osimport globimport cv2import numpy as npfrom torchvisi...原创 2018-09-27 20:32:27 · 9264 阅读 · 2 评论 -
ubuntu下gcc的升级
如果要升级gcc,直接用下面命令会报错:sudo apt-get upgradesudo apt-get install gcc-5 g++-5最后查阅资料,得用下面几行命令:sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get updatesudo apt-get install gcc-snapshots...原创 2018-10-12 23:28:15 · 1158 阅读 · 0 评论 -
patchGAN-patch判别器的理解和多种写法(tensorflow)
参考下面的github链接就明白了:https://github.com/ChengBinJin/V-GAN-tensorflow原创 2018-10-18 21:59:09 · 9948 阅读 · 2 评论 -
pytoch可视化网络工具-pytorchviz
tensoeflow的可视化工具是tensorboard,但是tensorboard在显示网络结构图的时候,显示特别混乱.之前看了caffe的可视化网络图,很清晰,最近发现pytorch的网络图可视化工具,对网络图的显示也很清晰.第一步:安装:一行命令安装conda install -c anaconda graphviz python-graphviz第二步:可视化代码(最好自己单独...原创 2018-10-09 15:58:22 · 2520 阅读 · 0 评论 -
Pytorch的pre-train函数模型或者旧的模型的引用及修改(增减网络层,修改某层参数等) finetune微调
对于想直接用已有的网络模型,只是增加,减少或者修改某几层,可以参考下面两篇博客.介绍了两种方法:1.常用的方法,好理解:https://blog.csdn.net/qq_27292549/article/details/78937786?utm_source=blogxgwz12.比较高端,但是代码简洁,高效:https://blog.csdn.net/whut_ldz/article/d...转载 2018-10-22 22:39:02 · 2642 阅读 · 0 评论 -
模式识别(5)K-L变换和PCA在人脸识别中的应用
这里简单总结下,人脸识别的一些理论基础。对图像的归一化: 旋转:从一个人的图像中截取下头部,对头部图像进行旋转,似的双眼保持水平。 剪裁:将双眼之间的距离变为图像的1/2,眼睛距离上边界的距离为0.5d, 放大缩小:将采集到的图片变为原来正方形,大小为128*128,或者其他D×D大小的图片。 灰度拉伸:增强对比度。 通过上面的几个步骤,一张采集到的面部图片就变为一张标准脸。对训练样本原创 2017-11-25 14:42:35 · 1958 阅读 · 0 评论 -
Ubuntu下在openCV3.2中配置opencv_contrib,然后使用SURF算子
最近用openCV3.2,发现无法使用SURF做特征点的检测。百度了一下,发现了是这样解释的。 “图像识别中的特征点检测中,需要用到Surf和Sift算法,但是这两个算法在OpenCV 3.2的Release版本中并不存在,因为他们是存放在opencv_contrib目录下面的未稳定功能模块”。 安装好openCV_contrib用了我一下午时间,才让代码在openCVC3.2的环境下编译通过,原创 2017-10-02 20:54:17 · 1250 阅读 · 0 评论 -
图像处理-图像的三要素
对于一副图像,用3个要素去描述它,就是图像的大小(size),图像的深度(depth),图像的通道数(channels)。图像的size就是图像的height和width,对应图像的rows和cols。图像的通道数就是每个像素点对应的描述数据种类,举个例子: 灰度图的通道数为1,彩色图的通道为3。基本上,描述一个像素点,如果是灰度,那么只需要一个数值来描述它,就是单通道。如果一个像素点,有RG原创 2016-11-10 21:09:26 · 9805 阅读 · 0 评论 -
openCV-相关概念理解和应用
图像掩模 在OPENCV中,掩模可以用于图像处理的叠加,比如将一个logo标志图标放置在一副图片上,可以用addweight()函数,也可以用mask掩模的方式; 下面分析一段添加掩模来处理图像的代码:#include "opencv2/features2d/features2d.hpp"#include "opencv2/highgui/highgui.hpp"#include <ope原创 2016-11-13 15:03:08 · 872 阅读 · 0 评论 -
openCV-直方图以及均衡化理解
直方图的均衡化 下面是对单通道灰度图的均衡化过程。对于彩色的图片来说,直方图均衡化一般不能直接对R、G、B三个分量分别进行上述的操作,而要将RGB转换成HSV来对V分量进行直方图均衡化的操作。 直方图均衡化算法分为三个步骤,第一步是统计直方图每个灰度级出现的次数,第二步是累计归一化的直方图,第三步是计算新的像素值。 第一步: for(i=0;i<height;i++) {转载 2016-11-22 17:13:09 · 1126 阅读 · 0 评论 -
openCV—霍夫变换原理(直白易懂)
霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。最基本的霍夫变换是从黑白图像中检测直线(线段)。我们先看这样一个问题:设已知一黑白图像上画了一条直线,要求出这条直线所在的位置。我们知道,直线的方程可以用y=k*x+b 来表示,其中k和b是参数,分别是斜率和截距。过某一点(x0,y0)的所有直线的参数都会满足方程y0=转载 2016-11-23 17:27:03 · 1252 阅读 · 0 评论 -
(openCV)Canny算子加霍夫变换检测直线
canny算子 在边缘检测中,最常用的就是Canny算子,当然还有Sobel,Laplacian,Scharr等算子,我这里研究的是Canny算子。 在Canny算子中,进行了以下步骤: 第一步:消除噪声,采用的是用一个(比如size=5)的孔径的高斯核对图像灰度矩阵的每一点做进行加权求和。 第二步:计算梯度幅值和方向 第三步:非极大值抑制,也就是排除非边缘像素。仅仅保留一些细线条(就是候原创 2016-12-15 19:39:05 · 3358 阅读 · 4 评论 -
openCV—可调节进度视频播放
直接给代码:#include <opencv2/opencv.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/core/core.hpp>#include <iostream>using namespace std;using namespac原创 2016-12-17 21:36:45 · 1288 阅读 · 0 评论 -
printf()函数的使用技巧(\r\n)
以前在变成调试的时候,一直不知道\r和\n有什么区别,觉得差不多,今天使用的时候就被坑了一把。 这里首先要理解:\n是换行,就是光标移动到下一行,\r是讲光标移动到本行的开始处。所以,在计时的时候,应该这样写:clock_t begin =clock();//add your codeclock_t end=clock();double process_time = double(end-beg原创 2017-04-01 22:09:11 · 15984 阅读 · 1 评论 -
Ubuntu下程序的编译和链接过程和openCV的makefile文件
简述在windows下编程,可能一个F5就能让代码跑起来,那是因为IDE(比如VS2103等)已经帮你做好了后台的编译和链接过程。当在Ubuntu下让代码跑起来,就要自己去理解代码的编译和链接过程。 下面说说什么是编译,什么是链接: 编译就是将源文件通过Complier,生成中间文件,在windows下,中间文件就是.obj 文件,在Ubuntu下,就是.o文件,即 Object...原创 2017-04-20 16:31:06 · 7375 阅读 · 5 评论 -
openCV编程思想总结(1)
开始最近发现自己写代码最难得就是开头,而且就算开头了,写到一半会发现自己的代码思想十分简单,运行效率低下,然后看别人写的代码,就会有种顿悟的感觉,然后自己的代码就相形见绌。所以总结写别人的代码中的精妙之处,所谓君子性非异也,善假于物也。openCV矩阵操作举例 分析下面的代码:Mat tsmResp(1,img_roi.rows, CV_32FC1, Scalar::all(1));Mat原创 2017-04-22 17:30:35 · 505 阅读 · 0 评论 -
openCV编程总结(2)-车道线检测之Bezier曲线3次拟合
最近做车道线检测,要检测弯道的曲线,于是采用Bezier3次曲线拟合的方式去拟合弯道曲线。 首先,要知道什么Bezier 3次曲线:对于二次抛物线,使用3个点就可以确定这条抛物线,而且抛物线的参数方程最高次为2,这种拟合抛物线就叫Bezier 的2次曲线拟合,对于3次曲线拟合,需要参数方程的最高次为3,也就是会有4个点来确定曲线,所以叫Bezier的3次曲线拟合。总的来说,由n个点确定的直线,就叫原创 2017-04-23 11:39:47 · 11451 阅读 · 7 评论 -
图像处理之二维高斯滤波详解
高斯(Guassian)模糊 图像滤波,见博客链接:http://www.cnblogs.com/zxj015/archive/2013/05/12/3074612.html转载 2017-04-24 20:48:01 · 4223 阅读 · 0 评论 -
李飞飞CS231n课程-中文笔记(包括课后作业要求)翻译汇总
CS231n官方笔记授权翻译总集篇发布 - 智能单元 - 知乎专栏 https://zhuanlan.zhihu.com/p/21930884CS231n课程笔记翻译:图像分类笔记(上) - 智能单元 - 知乎专栏 https://zhuanlan.zhihu.com/p/20894041CS231n课程笔记翻译:图像分类笔记(下) - 智能单元 - 知乎专栏 https://zhuanlan转载 2017-09-07 22:47:19 · 16393 阅读 · 2 评论 -
机器学习(3)-一些常用的Python3.0函数
在这里记载一下我处理图片数据集时候,遇到一些函数;max()和argmax()max是Python的内置函数,而argmax()是numpy的调用函数。 A:是一个[m*n]的矩阵 max(A),求出矩阵A中的最大值 这里的A应该是一个n*1的矩阵。B:B[m,n]矩阵 argmax(),就是求出矩阵最大元素的索引,比如下面的A矩阵,求出就是np.argmax(A)=4,np.argma原创 2017-09-18 15:30:53 · 1095 阅读 · 0 评论 -
matlab将Y,U,V三个通道合成YUV视频文件
最近做图像压缩方面的一些工作,处理的是yuv格式的视频,这也是HEVC编码中常用的压缩格式.问题,从yuv视频流中读取到Y,U,V,三个分量后,进行处理.有了处理后的Y,U,V三个,分量怎么可以快速合成yuv视频,进行压缩编码,查了下,都是用C++写的,一时间没怎么细看,找到一段很简单的Matlab代码.1.yuv视频读取(python):下面是8bit和10bit yuv视频文件读取代码...原创 2019-02-27 19:37:27 · 1933 阅读 · 1 评论