
数字图像处理
文章平均质量分 94
五道口纳什
wx公众号/B站:五道口纳什
展开
-
python opencv —— 背景提取(MOG、KNN)、识别与检测(Haar Cascade)
注意 opencv 的坐标轴,x 轴向右,和 width 对应,y 轴向下,和 height 对应;1. MOG2 与 KNNMOG:Mixture of Gaussianimport cv2cap = cv2.VideoCapture('./data/video/768x576.avi')knn_sub = cv2.createBackgroundSubtractorKN...原创 2018-05-01 23:01:05 · 4024 阅读 · 0 评论 -
小波图像处理 —— 奇异点(不连续点)检测
Detecting Discontinuities and Breakdown Points动态系统(dynamic system)中的信号常常表现出瞬时(transient)急剧的变化,一般为幅度的突然跳跃或一阶导二阶导数值的尖锐变化。傅里叶分析通常无法检测出这种瞬时的变化,小波分析却可以检测和捕捉到信号在某一时刻的突变。原创 2017-02-22 12:44:18 · 6231 阅读 · 0 评论 -
图像块的访问(填充 padding,步长 stride,窗 Window/kernel/filter)
无填充是有填充的特例(填充为 1)。utilities(matlab)—— 图像分块(image2cols、cols2image)(未填充)1. 一个图像块 ⇒ 返回一个值输出矩阵的大小:out_height = (H + 2*padding - field_height) / stride + 1;out_width = (W + 2*padding - field_width) / str原创 2017-02-20 21:05:24 · 3870 阅读 · 0 评论 -
matlab gabor 滤波器
gabor:Create Gabor filter or Gabor filter bank g = gabor(wavelength,orientation)原创 2016-12-30 12:05:03 · 2900 阅读 · 0 评论 -
图像处理的常用手段
pixel (6*6)(矩形或者 radial,向四周辐射) ⇒ cell(3*3) ⇒ blockAn image gradient is a directional change in the intensity or color in an image.(所谓的 intensity 其实就是颜色强度, rgb 上的值)1. 颜色空间归一化图像处理之gamma校正采用 Gamma 校正法对输原创 2016-11-05 11:55:09 · 4143 阅读 · 0 评论 -
图像处理的真实应用
0. 基本技术与手段检测直线:hough 变换;1. 小案例基于 matlab 的汽车牌照识别程序原创 2016-12-19 12:56:28 · 1408 阅读 · 0 评论 -
卷积、卷积矩阵(Convolution matrix)与核(Kernel)
在图像处理领域,Kernel = convolution matrix = mask,它们一般都为一个较小的矩阵;用于:Sharpen,Blur, Edge enhance,Edge detect,Emboss(使凸出;在……上作浮雕图案;装饰)1. 使用 matlab 创建 KernelKernel (image processing) 8.2. Convolution Matrix原创 2016-11-18 12:39:19 · 10205 阅读 · 0 评论 -
常见颜色(color)与RGB 的调色
通过 RGB 三通道所占比的组合(通过三元素长的元组存储),可呈现丰富的色彩样式:[0, 0, 0] ⇒ 黑色,[1, 1, 1] ⇒ 白色[1, 0, 0] ⇒ 红色,[0, 1, 0] ⇒ 绿色,[0, 0, 1] ⇒ 蓝色1. 整数组合 [0, 1, 1](G+B,绿+蓝) ⇒ cyan:蓝绿色;[1, 0, 1](R+B,红+蓝)⇒ magenta:品红;[1, 1, 0](R原创 2017-03-19 11:04:53 · 7014 阅读 · 0 评论 -
图像金字塔(pyramid)与 SIFT 图像特征提取(feature extractor)
David Lowe 1. SIFTSIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points,or corner points)及其有关 scale 和 orientation 的描述子(descriptor)得到特征并进行图像特征点匹配,获得了良好效果。整个算法分为以下几个部分:原创 2016-11-10 11:55:18 · 4109 阅读 · 0 评论 -
LBP(Local Binary Patterns)局部二进制模式
1. LBP 用于人脸识别为了预测每个像素属于哪个脸部器官(眼睛、鼻子、嘴、头发),通常的作法是在该像素周围取一个小 的区域,提取纹理特征(例如局部二值模式),再基于该特征利用支持向量机等浅层模型分类。因为局部区域包含信息量有限,往往产生分类错误,因此要对分割后的图像加入平滑和形状先验等约束。原创 2017-06-15 23:21:30 · 2728 阅读 · 0 评论 -
matlab 局部特征检测与提取(问题与特征)
局部特征及其描述子,是对局部邻域的紧凑向量表示(compact vector representation),是许多计算机视觉算法的构建基石。基于局部特征使得这些计算机视觉算法能够更好地处理图像中的尺度变化,旋转以及遮挡等细节问题。常见的用于目标检测的局部特征表示方法如下:针对 corner features 的:FAST, Harris, 以及 Shi & Tomasi 方法针对 blob f原创 2017-05-07 15:00:55 · 4517 阅读 · 0 评论 -
hard-negative mining 及伪代码实现
Histogram of Oriented Gradients and Object Detection对于目标检测(object detection)问题,所谓的 hard-negative mining 针对的是训练集中的 negative training set(对于目标检测问题就是图像中非不存在目标的样本集合)原创 2017-05-05 12:02:42 · 5593 阅读 · 1 评论 -
特征描述子(feature descriptor) —— HOG(方向梯度直方图)
HOG(Histogram of Oriented Gradients),描述的是图像的局部特征,其命名也暗示了其计算方法,先计算图像中某一区域不同方向上梯度的值,然后累积计算频次,得到直方图,该直方图便可代表该区域了,也即从图像中抽取得到的特征向量,可以作为后续分类器的输入了。原创 2017-04-29 11:56:31 · 4051 阅读 · 0 评论 -
Gamma correction 伽马校准及 matlab 实现
用以调整图像光照强度的非线性操作,其数学形式为:Vout=AVγinVin:非负实数值,比如为图像像素;AA:某一常数,通常情况下取值为 1,输入输出的范围一般为 [0, 1]; γ<1\gamma < 1:光照强度变强,称为 gamma compressionγ>1\gamma > 1:光照强原创 2017-04-29 16:31:44 · 23733 阅读 · 1 评论 -
椒盐噪声加噪的实现原理
椒盐噪声的实现原理为,随机地将图像中的一定比例的像素值取极大或者极小:这里给出 Python 下的一种实现,可简单地转换为其他原创 2017-03-26 21:15:18 · 4268 阅读 · 0 评论 -
color2gray 的实现
无论是 rgb 还是 yuv 等三通道的颜色空间中的像素点,将其转换为单通道(pixel_depth=255.)中的像素,一般情况下都是采用的对原始颜色空间的 3 通道的像素点线性组合而得到单通道的像素点的方式原创 2017-03-24 16:42:08 · 2143 阅读 · 0 评论 -
EPI_H/EPI_V(边缘保持指数,matlab 矢量化编程)
EPI: edge preservation index,衡量对原始图像的操作(目标图像)对图像边缘的保持能力。EPI_H:horizontal ,水平方向;EPI_V:vertical,垂直方向;EPIH=∑i∑j∣∣I^(i,j+1)−I^(i,j)∣∣∑i∑j|I(i,j+1)−I(i,j)|EPIV=∑i∑j∣∣I^(i+1,j)−I^(i,j)∣∣∑i∑j|I(i+1,j)−I(i,原创 2016-11-30 18:03:43 · 7868 阅读 · 8 评论 -
图像处理基本概念、术语
计算机视觉的挑战viewpoint variation:视角scale variation:尺度deformation:变形occlusion:遮挡illumination conditions:照明background clutter:前景背景混淆Intra-class variation:类内的差异原创 2016-01-07 15:06:30 · 3546 阅读 · 0 评论 -
图像二维离散傅里叶变换、幅度谱、相位谱
clear, clcI = imread('...');F = fftshift(fft2(I)); % 对图像进行二维 DFT(fft2),并移至中心位置magn = log(abs(F)); % 加log是便于显示phase = log(angle(F)*180/pi); % 转原创 2016-10-05 14:59:52 · 10020 阅读 · 1 评论 -
使用 matlab 数字图像处理(七)—— 频率域处理
二维离散傅里叶变换F(u,v)=∑x=0M−1∑y=0N−1f(x,y)e−i2π(ux/M,vy/N)f(x,y)=∑u=0M−1∑v=0N−1F(u,v)ei2π(ux/M,vy/N)F(u,v)=\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-i2\pi(ux/M,vy/N)}\\f(x,y)=\sum_{u=0}^{M-1}\sum_{v=0}^{N-原创 2016-04-17 13:15:17 · 5780 阅读 · 0 评论 -
使用 matlab 数字图像处理(六)—— 空域滤波
相关和卷积所谓邻域处理或者空间域滤波,即是对图像中的每一点 (x,y)(x,y),重复以下的操作:(1)对预先定义的以 (x,y)(x,y) 为中心的邻域内的像素进行处理,(2)将(1)中运算的结果作为 (x,y)(x,y) 点新的响应;相关:g(x,y)=∑s=−aa∑t=−bbw(s,t)f(x+s,y+t)g(x,y)=\sum_{s=-a}^{a}\sum_{t=-b}^bw(s,t原创 2016-04-17 12:38:12 · 5229 阅读 · 0 评论 -
使用 matlab 数字图像处理(五)—— 双线性插值(Bilinear Interpolation)
设已知单位正方形的四个顶点坐标分别为:f(0,0),f(1,0),f(1,0),f(1,1)f(0,0),f(1, 0),f(1,0), f(1,1),通过双线性插值的方式得到正方形内任意点 f(x,y)f(x,y) 的值。(1)首先对上端的两个点进行线性插值 f(x,0)=f(0,0)+x[f(1,0)−f(0,0)] f(x,0)=f(0,0)+x[f(1, 0)-f(0, 0)] (原创 2016-04-17 12:03:35 · 11935 阅读 · 0 评论 -
使用 matlab 数字图像处理(三)—— 实现图像的旋转(不使用 imrotate)
图像的旋转是不改变图像的灰度值的,这是将原始位置映射到新的位置。[x1y11]=[x0y01]⋅⎡⎣⎢cosθ−sinθ0sinθcosθ0001⎤⎦⎥ \begin{bmatrix}x_1 & y_1& 1 \end{bmatrix}=\begin{bmatrix}x_0 & y_0 & 1\end{bmatrix}\cdot \begin{bmatrix}\cos\theta &原创 2016-04-17 11:48:18 · 12390 阅读 · 2 评论 -
使用 matlab 数字图像处理(二)—— 直方图均衡化(极简实现)
直方图均衡化(Histogram Equalization)是一种实用性极高的直方图修正技术。直方图均衡化又称为灰度均衡化,是指通过某种灰度映射使输入图像转换为在每一灰度级上都有近似相同的像素点数的输出图像,即输出图像的直方图是均匀的。在经过均衡化处理后的图像中,像素将占有尽可能多的灰度级且十分均匀。因此这样的图像将具有较高的对比度和较大的动态范围。matlab 图像处理工具箱提供了直接用于直方图均原创 2016-04-17 10:33:37 · 6270 阅读 · 0 评论 -
使用 matlab 数字图像处理(一)—— 归一化直方图
I = imread('pout.tif'); % matlab 自带图像[cnts, x] = imhist(I, 32);[m, n] = size(I)prob = cnts / m / n;stem(x, prob)原创 2016-04-17 09:39:28 · 12928 阅读 · 0 评论 -
计算机与计算机视觉史话
计算机视觉理论的由来上世纪60年代,Marvin Minsky在MIT让他的本科学生Gerald Jay Sussman用一个暑假的时间完成一个有趣的Project:“link a camera to a computer and get the computer to describe what it saw”。从那时起,特别是David Marr教授于1977年正式提出计算机视觉理论,计算机视觉原创 2015-12-27 18:24:32 · 1025 阅读 · 0 评论 -
图像的认知
图像的大小笔者曾见过一个22800×19200=43776000022800\times 19200=437760000,也即4亿3776万像素的照片,43776000010242≈417.48 M\frac{437760000}{1024^2}\approx417.48 \textrm{ M} 大小。笔者的号称800W像素3264×2448=7990272 3264\times2448=79902原创 2015-12-26 14:25:23 · 1412 阅读 · 0 评论 -
使用 matlab 数字图像处理(八)—— 画圆
0:黑色,1:白色;h = 256; w = 256; r = 70; % 分别表示:高,宽,内部圆的半径I = ones(h, w);[x, y] = meshgrid(1:w, 1:h); % 注意 meshgrid 参数的顺序I(((x-ceil(w/2)).^2+(y-ceil(h/2)).^2) <= r^2) = 0;原创 2016-04-17 16:28:34 · 8727 阅读 · 1 评论 -
使用 matlab 数字图像处理(九)—— 去卷积(deconvolution,逆滤波复原)
在没有噪声的情况下,频域退化模型可由下式给出:G(u,v)=H(u,v)F(u,v)G(u,v)=H(u,v)F(u,v)G(u,v)G(u,v) :退化图像;H(u,v)H(u,v) :退化函数;F(u,v)F(u,v):原始图像。则原始图像可通过退化图像和退化函数得到: F(u,v)=G(u,v)H(u,v)F(u,v)=\frac{G(u,v)}{H(u,v)}也即,如果已知退化原创 2016-04-17 19:15:52 · 28029 阅读 · 7 评论 -
matlab 也能干大事 —— 九等分一幅图像
clear, clc, close allI = imread('fish.jpg');I = imresize(I, [999, 999]);splits = zeros(333, 333, 3, 9); % 处理的是彩色图像 % 当然二维图像更好处理n = 9;for i=0:原创 2016-07-01 10:48:52 · 3505 阅读 · 2 评论 -
DoG(Difference of Gaussian)
f(x)=e−x22−12⋅e−x28f(x)=e^{\frac{-x^2}2}-\frac12\cdot e^{-\frac{x^2}8}>> f = @x (exp(-x.^2/2) - exp(-x.^2/8)/2)>> plot(-5:.1:5, f(-5:.1:5))原创 2016-06-28 15:19:11 · 1381 阅读 · 0 评论 -
双边滤波(Bilateral filter)
1. 双边滤波(BF)强大的双边滤波器可平滑平坦区域,同时保持边缘锐化。因此,它可作为一个自动的卡通化或图画滤波器,其缺点是效率低(即该滤波器运行的时间要按秒,甚至分钟而不是毫秒来计算)。那么如何卡通化一副图像时,还可接受其运行时间。最重要的技巧就是在低分辨率下使用双边滤波,这会得到与高分辨率下相似的效果,但运行速度更快。可将分辨率较少为原图像的四分之一(将图像的宽和高各减少二分之一)。原创 2016-06-04 18:01:46 · 3019 阅读 · 0 评论 -
如何仅用一行 matlab 代码左右翻转一副图像?
此法常用于制作情侣头像。1. 左右翻转一副灰度图像I = imread('./lena.png');I2 = I(:, end:-1:1);% 保存imwrite(I2, './lena_1.png'); 2. 左右翻转一副彩色图像I = imread('./olaf.jpg');I2 = I(:, end:-1:1, 1:3);% 保存imwrite(I2, './ol原创 2016-06-09 09:02:47 · 7459 阅读 · 1 评论 -
图像(帧)分块机制(patch mechanism)
比如一幅 28*28(height*width) 的图像(帧)分成 5*5(patchDim) 的 patch(block),不考虑边界,最终的块的活动范围:(28-5+1)*(28-5+1)如果对这些块进行随机选择的话:row_idx = unidrnd(height-patchDim+1, [1, numPatches]);col_idx = unidrnd(width-patchDim+1,原创 2016-05-07 13:11:34 · 5790 阅读 · 0 评论 -
RGB vs YCbCr(YUV)
黑白图像的每个像素只需一个幅值表示其亮度即可,而彩色图像的每个像素至少需要 3 个值表示其亮度和色度。所谓色度空间就是表示彩色图像的亮度和色度的方法。一、RGB红绿蓝——三原色原理,应用如下:彩色显像管(CRT)和液晶显示器(LCD)可显示彩色图像,彩色摄像机中的电荷耦合器件(CCD)等传感器可产生彩色电视图像,二、YCbCr(YUV)如果亮度分量用 YY 表示,色度用 Cb,CrC_b,C_原创 2016-05-03 22:08:24 · 1662 阅读 · 0 评论 -
使用 matlab 数字图像处理(十)—— 维纳滤波复原
逆滤波只能解决只有退化函数,没有加性噪声的问题。维纳滤波又称最小均方误差滤波,综合考虑了退化函数和噪声。均方误差由下式给出: e2=|f(x)−f^(x)|2e^2=|f(x)-\hat f(x)|^2假定噪声与图像是不相关的,复原图像的最佳估计可用下式表示: F^(u,v)=[HH(u,v)|H(u,v)|2+Sn(u,v)/Sf(u,v)]G(u,v)\hat F(u,v)=\left原创 2016-04-17 20:30:27 · 16671 阅读 · 0 评论 -
灰度共生矩阵GLCM及其matlab实现
Prerequisites概念计算方式对于精度要求高且纹理细密的纹理分布,我们取像素间距为d=1d = 1,以下是方向的说明:我们来看,matlab内置工具箱中的灰度共生矩阵的生成函数graycomatrix(gray-level co-occurrence matrix)对方向的说明: 如上图所示,方向是在每一个像素点(pixel of interest)的邻域(当然,边界点除外)中获得的,原创 2015-11-18 10:50:20 · 28680 阅读 · 4 评论