数字图像处理
Shane Zhao
CV
展开
-
matlab中图像格式转换
uint 8:无符号的8位(8bit)整型数据(unit 都是存储型)int :整型数据1、在MATLAB中,数值一般都采用double型(64位)存储和运算.2、为了节省存储空间,MATLAB为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称为8位型像。3、函数image能够直接显示8位图像,但8位型数据和double型数据在image中意义不一样,转载 2017-01-17 12:15:08 · 9064 阅读 · 5 评论 -
mxnet框架卷积试水
参考自:https://zhuanlan.zhihu.com/p/30536717原创 2018-06-29 16:05:20 · 692 阅读 · 0 评论 -
分割得到的二值图像取最大区域和对分割结果填补完整
二值图像分割结果提取主要用到skimage.measure的label和regionprops填补空洞主要用到scipy.ndimage.binary_fill_holeslabel这个函数可以用来对图像进行块的标记,比如我自己做的这个二值图像,现在我用label可以实现对图像所有块标记,其中黑色背景为0,然后块一次被标记上数字(就是所有属于某个块的像素值都被设置成一个固定的值)下面,...原创 2018-05-07 20:15:11 · 7239 阅读 · 0 评论 -
不同系统opencv的快速安装
对于windows平台,https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv下载对应python版本和系统版本的whl文件,然后pip install XXX.whl 就行了在centos或者ubantu上两种快速安装策略,如果有conda,那直接conda install -c menpo opencv3,没有的话可以试试下载https://p...原创 2018-04-13 11:15:28 · 363 阅读 · 0 评论 -
opencv椭圆拟合
目标:通过椭圆拟合求出目标长短轴思路:先用canny计算出待拟合椭圆的边界坐标,opencv中fitEllipse函数可通过最小二乘法来拟合一个椭圆使得点尽量在椭圆上。如上图,右边是拖过canny计算出边界点信息,左图是拟合出来的椭圆。以下作参数说明def fit_ellipse(img): edge = cv2.Canny(img,10,150) # 求出边界 ...原创 2018-04-08 17:35:18 · 14348 阅读 · 4 评论 -
Dilated/Atrous conv 空洞卷积/多孔卷积
DilatedDilatedDilated convolution/Atrousconvolution/Atrousconvolution/Atrous convolutionconvolution convolution可以叫空洞卷积或者扩张卷积。空洞卷积诞生于图像分割领域,图像输入到网络中经过CNNCNNCNN提取特征,再经过poolingpoolingpooling降低图像尺度的同时增大...原创 2018-03-29 20:40:32 · 16010 阅读 · 6 评论 -
做图像时候关于数据类型的采坑记录
今天写了个算法,遇到个很奇葩的BUG。就是由于数值矩阵的类型造成的!!!opencv,scipy.misc读取的图像矩阵默认是uint8类型(plt默认是float32,0-1之间),该类型是无符号整数类型,一般方便计算,我会转成float类型,问题来了,在转换成float类型后经过算法层层计算,最后输出的图像矩阵有负数,这和讲uint8类型的图像输入算法得出的结果有一定差距,我先将算法得出的...原创 2018-01-27 21:21:54 · 435 阅读 · 0 评论 -
图像处理-踩坑记
现在几个流行的图像处理库:matplotlib.pyplot,,scipy.misc,skimage,opencv以上图像默认读取的数据格式都是uint8类型(除了matplotlib),但是请将以上库的使用与matlab中用法注意区分(matlab中默认也是uint8类型,但是处理时候方便转换成float类型,在imshow时候注意matlab是默认float类型图像在0-1之间,故有时候显...原创 2018-02-02 14:26:14 · 366 阅读 · 0 评论 -
matlab简易实现图像压缩
意义:图像视频只有被压缩才能有效大规模的存储和发送。那么这儿总结我自己理解的图像压缩简单流程压缩的方法论:我们首先做图像压缩是在频率域处理的,通过DCT(离散余弦变换)将图像转到频率域。低频部分也存储了图像的大多信息。我们知道,低频部分集中较多能量,含有图像大多平滑信息,而高频部分主要是边缘或者噪声。人眼对低频的光波比较敏感,故我们将高频部分合理丢掉部分,然后将频率域的图像进行量化处理,量原创 2017-04-04 15:33:10 · 40723 阅读 · 3 评论 -
vs2017 compile opencv3 and opencv_contrib
今天使用opencv发现没有SIFT,一系列特征提取模块也没了。google得知opencv将特征提取啊还有一些比较新的模块放opencv_contrib这儿了,说模块不稳定,嗯我自己现在想用,那么只有自己来编译。从这儿开始踩了一天坑。具体最后按照一个歪果仁写的bolg才填完坑。下面这个歪果仁告诉你为啥没了SIFT? http://www.pyimagesearch.com/2015/07/16/原创 2017-08-12 21:54:24 · 574 阅读 · 0 评论 -
SIFT+BOW 实现图像检索
本文概述图像检索是图像研究领域中一个重要的话题,广泛应用于医学,电子商务,搜索,皮革等。本文主要是探讨学习基于局部特征和词袋模型的图像检索设计。图像检索概述图像检索按照描述图像不同方式可以分为两类,一类是基于文本的图像检索(Text Based Image Retrieval),另一类是基于内容的图像检索(Content Based Image Retrieval)基于文本的图像检索基于文本的图像检原创 2017-08-18 18:02:49 · 24488 阅读 · 13 评论 -
SIFT算法学习总结
这儿仅作为我个人学习SIFT算法的总结!算法存在的意义SIFT(Scale-Invariant feature transform)算法是一种局部特征检测的算法,该算法通过寻找图像中的特征点(interest points ,or corner points)来进行特征点匹配。它在尺度空间寻找极值点,并精确计算出其位置信息,结合尺度,方向信息进行特征描述,该算法具有尺度,旋转不变性,对图像的亮度或者原创 2017-08-11 17:30:37 · 6656 阅读 · 1 评论 -
高通滤波,锐化图像
introduction前面在低通滤波文章中探讨了低通滤波,去除噪声。在此,使用高通滤波,提取图像边缘,进而锐化图像。highpass filter & sharpen image 与低通滤波器相反,高通滤波器允许图像高频部分通过,而高频部分证实图像的边缘信息(或者噪声)。得到如下的图像 sharpen image将高通滤波器提取的高频部分加到原图上,从而强化图像的边缘信息,达到锐化图像的效果。原创 2017-05-17 17:39:43 · 29058 阅读 · 0 评论 -
频率域低通滤波
introduction图像噪声在空间域通过相邻像素可以去除噪声,但有时效果不理想。典型的空域滤波有均值滤波,中值滤波,高斯滤波等。 将图像转换到频率域后,频率图像具有较高的‘规范性’,依据能量分布可以有效去除噪声,低频部分主要是灰度平滑区域,高频部分可能是噪声或者图像边缘特征,主要是灰度变化较大区域。通过低通滤波器,滤除高频部分,保留低频部分,可有效去除噪声。ideal lowpass filt原创 2017-05-17 16:40:25 · 7933 阅读 · 0 评论 -
图像恢复
维纳滤波—deconvwnr函数利用维纳滤波器来对图像模糊修复function image_restoration_deconvwnr() %Read image I = im2double(imread('lena.tif')); I=rgb2gray(I); figure,subplot(2,3,1),imshow(I); title('Original原创 2017-04-23 16:48:12 · 6043 阅读 · 0 评论 -
hough变换理解
hough变换概念在计算机中,经常需要将一些特定的形状图形从图片中提取出来,如果直接用像素点来搜寻非常困难,这时候需要将图像从像素按照一定的算法映射到参数空间。hough变化提供了一种从图像像素信息到参数空间的变换方法。对于像直线,圆,椭圆这样的规则曲线hough是一种常用的算法。hough变化最大的优点在于特征边缘描述中间隔的容忍性并且该变换不受图像噪声的影响。hough变换原理hough变换是一原创 2017-04-29 10:46:33 · 12249 阅读 · 0 评论 -
Matlab实现图像插值和降低图像灰度级
图像在旋转或者缩放操作时候会需要插值操作,插值操作就是在像素间插入未知的像素值。常见的插值算法有最近邻插值算法,双线性插值算法,三次卷积等最近邻插值算法这是最简单的一种插值算法,根据目标图像(插值后的图像大小)与源图像大小的比值来寻找目标图像的像素位置对应于源图像像素的位置。比如说源图像是3*3的大小,插值后的目标图像数4*4的大小目标图像G(i,j)代表第i行j列的像素值,我们现在要从源图像中原创 2017-03-31 17:17:11 · 21962 阅读 · 0 评论 -
RGB图像之灰度级和通道的理解
最近刚开始学数字图像处理,在看到灰度级时候以为灰度只是表示黑白/深浅色图像,其实灰度级指黑白显示器中显示像素点的亮暗差别,在彩色显示器中表现为颜色的不同,灰度级越多,图像层次越清楚逼真。 注意,灰度值只是表征单色的亮暗程度。 在彩色图像/RGB图像中,图像是一个三维矩阵,如400*300*3,其中400表示列数,300表述行数,3代表三个分量,也就是R,G,B。 每一层矩阵(400*300*1原创 2016-12-21 18:58:24 · 73604 阅读 · 15 评论