压缩感知技术 图像处理
2018-08-30 15:52:26 qq_35330032 阅读数 1358

1.1基本概念

图像处理的概念是对图像信息进行加工处理,以满足人的视觉心理和实际应用的需求。

模拟图像:连续图像,采用数字化(离散化)表示和数字技术处理之前的图像。

数字图像:由连续的模拟图像采样和量化而得的图像,组成其基本单位是像素。

像素的值代表图像在该位置的亮度或灰度,称为图像的灰度值。

数字图像像素具有整数坐标和整数灰度值。

1.2

图像增强:调整图像的对比度,突出重要细节,改善图像质量。

图像复原和校正:去噪声、去模糊。使得图像能够尽可能地贴近原始图像。

图像的平滑:图像的去噪声处理(通过滤波算法),为了去除实际成像过程中,因成像设备和环境所造成的图像失真,提取有用的信息。

边缘锐化:加强图像的轮廓边缘和细节(一般轮廓边缘都处于灰度突变的地方),通过基于微分锐化算法使灰度反差增强。

图像分割:图像分割就是把图像分成若干个特定的、具有独特性质的区域。

2.1

计算机图像处理的几个内容:

如何对模拟图像进行采样、量化以产生数字图像?

如何压缩图像数据以便存储和传输?

如何对数字图像做各种变换以方便处理?

采样是空间上的离散化,量化是灰度上的离散化。

图像采样就是在水平和垂直方向上等分隔地分割成网状。

量化是在每个采样点上进行的,所以必须先采样后量化。两者都是图像数字化不可或缺的两个操作,两者紧密相关,同时完成。

图像量化实际就是将图像采样后的样本值的范围分为有限多个区域,落入某区域中的值用同一值表示,从而用有限的离散数值量来代替无限的连续模拟量。量化时确定的离散取值个数称为量化级数,表示量化的色彩和亮度值所需的二进制位数称为量化字长,一般量化字长为8位、16位或24位,量化字长越大,越能真实反映原有图像的颜色,但存储的字节也越大。

M、N图像尺寸,K每个像素所具有的离散灰度级数(不同灰度值的个数)

存一幅图像所需的位数(bit)B=M*N*K 减少K值能增强图像的反差。

LENA图是永恒的经典,图像处理领域使用最为广泛的标准测试图。

2.2

图像模式:

1、灰度图像:每个像素的信息由一个量化的灰度级来描述的图像,无彩色信息。

2、黑白图像、二值图像:只有黑白两色没有中间的过渡,像素值为0、1。

3、彩色图像:数据多采用RGB三基色模型,包含亮度和颜色两类信息。

色彩的三要素包括色调(光波的不同波长,反映不同颜色的种类)、饱和度(颜色的纯度,颜色的深浅程度)、亮度(光的明亮程度)。HSL模型

 

2.3

图像文件格式:

BMP文件格式 位图文件格式 由文件头、调色板数据、图像数据三部分组成

GIF  文件格式 存储256色图像

TIFF 文件格式 相对经典、功能很强的图像文件存储格式

JPEG文件格式 静止图像压缩标准文件格式

DICOM  格式 医学图像文件存储格式

2.4图像质量评价

客观评价标准:归一化均方误差NMSE、峰值均方误差PMSE、等效信噪比PSNR

主观评价标准:图像逼真度、图像可懂度

2015-01-06 22:37:00 weixin_34072857 阅读数 4

点击链接进入相关博文


1.来自西弗吉利亚大学li xin整理的CV代码合集


主要包括:

    1.图像去噪,编码,去马赛克,超分辨,分割,去模糊,纹理合成,修复,质量评估等

    2.视频编码和目标追踪,动作匹配,视觉追踪

    3.Low Rank近似等

    4.深度学习,机器学习和神经网络

    5.压缩感知

    6.多视角几何


2.2013计算机视觉代码合集(一、二)

主要包括以下内容:

      1.特征提取Feature Extraction

     2.图像分割Image Segmentation

     3.目标检测Object Detection:

     4.显著性检测Saliency Detection:

     5.图像分类、聚类Image Classification, Clustering

     6.抠图Image Matting

     7.目标跟踪Object Tracking:

     8.Kinect

     9.3D相关:

    10.机器学习算法: 

    11.目标、行为识别Object, Action Recognition:

    12.图像处理:

    13.一些实用工具:

        EGT: a Toolbox for Multiple View Geometry and Visual Servoing[Project] [Code]
        a development kit of matlab mex functions for OpenCV library[Project]
        Fast Artificial Neural Network Library[Project]

   14.人手及指尖检测与识别:

   15.场景解释

   16.光流Optical flow:

   17.图像检索Image Retrieval:

   18.马尔科夫随机场Markov Random Fields: 

   19.运动检测Motion detection:


转载于:https://www.cnblogs.com/engineerLF/p/5393070.html

2015-01-06 22:37:00 weixin_34179762 阅读数 4

点击链接进入相关博文


1.来自西弗吉利亚大学li xin整理的CV代码合集


主要包括:

    1.图像去噪,编码,去马赛克,超分辨,分割,去模糊,纹理合成,修复,质量评估等

    2.视频编码和目标追踪,动作匹配,视觉追踪

    3.Low Rank近似等

    4.深度学习,机器学习和神经网络

    5.压缩感知

    6.多视角几何


2.2013计算机视觉代码合集(一、二)

主要包括以下内容:

      1.特征提取Feature Extraction

     2.图像分割Image Segmentation

     3.目标检测Object Detection:

     4.显著性检测Saliency Detection:

     5.图像分类、聚类Image Classification, Clustering

     6.抠图Image Matting

     7.目标跟踪Object Tracking:

     8.Kinect

     9.3D相关:

    10.机器学习算法: 

    11.目标、行为识别Object, Action Recognition:

    12.图像处理:

    13.一些实用工具:

        EGT: a Toolbox for Multiple View Geometry and Visual Servoing[Project] [Code]
        a development kit of matlab mex functions for OpenCV library[Project]
        Fast Artificial Neural Network Library[Project]

   14.人手及指尖检测与识别:

   15.场景解释

   16.光流Optical flow:

   17.图像检索Image Retrieval:

   18.马尔科夫随机场Markov Random Fields: 

   19.运动检测Motion detection:


转载于:https://www.cnblogs.com/engineerLF/p/5393070.html

2015-01-06 22:37:16 qianhen123 阅读数 2273

点击链接进入相关博文


1.来自西弗吉利亚大学li xin整理的CV代码合集


主要包括:

    1.图像去噪,编码,去马赛克,超分辨,分割,去模糊,纹理合成,修复,质量评估等

    2.视频编码和目标追踪,动作匹配,视觉追踪

    3.Low Rank近似等

    4.深度学习,机器学习和神经网络

    5.压缩感知

    6.多视角几何


2.2013计算机视觉代码合集(一、二)

主要包括以下内容:

      1.特征提取Feature Extraction

     2.图像分割Image Segmentation

     3.目标检测Object Detection:

     4.显著性检测Saliency Detection:

     5.图像分类、聚类Image Classification, Clustering

     6.抠图Image Matting

     7.目标跟踪Object Tracking:

     8.Kinect

     9.3D相关:

    10.机器学习算法: 

    11.目标、行为识别Object, Action Recognition:

    12.图像处理:

    13.一些实用工具:

        EGT: a Toolbox for Multiple View Geometry and Visual Servoing[Project] [Code]
        a development kit of matlab mex functions for OpenCV library[Project]
        Fast Artificial Neural Network Library[Project]

   14.人手及指尖检测与识别:

   15.场景解释

   16.光流Optical flow:

   17.图像检索Image Retrieval:

   18.马尔科夫随机场Markov Random Fields: 

   19.运动检测Motion detection:


2019-04-12 21:31:01 weixin_43489950 阅读数 94

一、图像处理预备知识

1、图像处理(image processing)

用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。

在计算机中,按照颜色和灰度的多少可以将图像分为二值图像、灰度图像、索引图像和真彩色RGB图像四种基本类型。

2、图像处理常用方法

1)图像变换

为了用正交函数或正交矩阵表示图像而对原图像所作的二维线性可逆变换。一般称原始图像为空间域图像,称变换后的图像为转换域图像,转换域图像可反变换为空间域图像。

它可以分为四个部分:空域变换等维度算法,空域变换变维度算法,值域变换等维度算法和值域变换变维度算法。其中空域变换主要指图像在几何上的变换,而值域变换主要指图像在像素值上的变换。等维度变换是在相同的维度空间中,而变维度变换是在不同的维度空间中,例如二维到三维,灰度空间到彩色空间。

常用的有三种变换方法:傅里叶变换、沃尔什-阿达玛变换、离散卡夫纳-勒维变换。这里只讲傅里叶变换。

2)图像增强和复原

图像增强不增加图片信息,只对感兴趣的特征进行强调突出,增加辨别能力。根据人的主观评定,具有一定的人为畸变。一般通过空间域处理和频率域处理两种方法。

图像复原技术的主要目的是以预先确定的目标来改善因散焦、像物相对运动、成像器材的图固有缺陷和外部干扰导致退化的图像。

图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。图像增强主要是一个主观过程,而图像复原则大部分是一个客观的过程。

3)图像压缩

图像压缩是一种减少描绘一幅图像所需数据量的技术和科学,它是数字图像处理领域中最有用和商业上最成功的技术之一。

图像压缩既可以是无损压缩,没有信息损失;也可以是有损压缩,不能通过解压恢复原图,牺牲准确度换来压缩能力的增加。

4)图像分割

图像分割是数字图像处理中的关键技术之一。分割将图像细分为构成它的子区域或物体。细分程度取决于要解决的问题。即将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。

5)图像描述

图像描述是图像识别和理解的必要前提。作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。

6)图像识别

图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。

二、MATLAB简介

MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。

三、MATLAB图像处理代码

1、图像读取及保存

MATLAB的基本数据单位是矩阵,一幅图像可定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,而在任何一对空间坐标(x,y)处的幅值f称为图像在该点处的强度或灰度。当x,y和灰度值f是有限的离散数值时,我们称该图像为数字图像。在MATLAB中,数字图像就是一个个矩阵。

1)图像读取

函数:imread(‘图像文件’) :读入指定的图像文件到内存

举例:

InImg=imread('d:\photo\yng.jpg'); %读取D盘photo文件夹中命名为yng的.jpg格式的图像存储到InImg矩阵中

2)图像保存

函数:imwrite(OutImg, ‘图像文件’)输出内存中图像数据到文件

举例:

imwrite(OutImg,'d:\photo\yn_ln.jpg'); %将OutImg矩阵表示的图像存储到电脑D盘photo文件夹中,并命名为yn_ln的.jpg格式的图像。

3)图像显示

函数:imshow(ImgData) 将图像文件显示到屏幕
subplot(行数,列数,区域索引); 

举例:

subplot(1,1,1);imshow(InImg); %将InImg图像文件显示到屏幕上指定位置

4)图像转换

I=rgb2gray(rgbImg)将彩色图像转换为灰度图像,rgbImg为彩色图像
bw=im2bw(Img,level): 将灰度图像转换为二值图像,Img为灰度图像,level为0~1的灰度级阈值;


原图


灰度图像                                                         二值图像

2、图像增强

1)数字图像灰度增强

J=imadjust(I,[low high], [bottom top],gamma): 对灰度图像进行直接灰度变换;I为增强前灰度图像,J为增强后的灰度图像,[low high]增强前灰度级范围,[bottom top]增强后灰度级范围

举例:

clear;
InImg=imread('d:\photo\yng.jpg');
I=rgb2gray(InImg);
bw1=im2bw(I,0.8);
J=imadjust(I,[0.1 0.6], [0 1],0.5);
bw2=im2bw(J,0.8);
bw2=medfilt2(bw2);
subplot(1,2,1);imshow(bw1);
subplot(1,2,2);imshow(bw2);


增强前                                                                                              增强后

2)数字图像空域滤波

S=medfilt2(J): 对图像进行中值滤波
举例:

M=0;V=0.01;
J1=imnoise(I, 'gaussian',M,V);
S=medfilt2(J1);
subplot(1, 2, 1); imshow(J1);
subplot(1, 2, 2); imshow(S);

高斯噪声                                                                                        中值滤波

3)数字图像频域滤波

F=fft2(I): 2D 傅里叶正变换

Pha=angle(F): 计算相位谱

R= abs(F): 计算功率谱
F1=real(F): 获得傅里叶变换实部分量
F2=imag(F): 获得傅里叶变换虚部分量
fftshift(F): 移动傅里叶频谱中心至零频率

I=ifft2(F): 2D 傅里叶逆变换

举例:(1)

I=BWBand(21,31);
F=fft2(I);                        %傅里叶正变换
F=fftshift(F);
L=abs(F);
L= mat2gray(L);
I3=imrotate(BWBand(21, 31),30);
F3=fft2(I3);
F3=fftshift(F3);
L3=abs(F3);
L3= mat2gray(L3);
subplot(141); imshow(I);
title('原图');
subplot(142); imshow(I3);
title('旋转30度图');
subplot(143); imshow(L); 
title('功率谱图');
subplot(144); imshow(L3);

title('旋转30度功率谱图');


(2)
InImg=imread('d:\photo\ying.jpg');
subplot(2, 2, 1); imshow(InImg); 
title('原彩色图');
I=rgb2gray(InImg);
J1=imnoise(I, 'salt & pepper',0.01);
subplot(2, 2, 2); imshow(J1); 
title('椒盐噪声污染图');
[f1, f2]=freqspace([199 200],'meshgrid');        %产生等间隔采样的频率响应
R=sqrt(f1.^2+ f2.^2);                   %计算功率谱
Hd=ones([199 200]);
Hd(R>0.5)=0;                                   %产生理想的带通滤波器,频率带宽[0.1 0.5]
win= fspecial('gaussian',[199 200],2); %采用高斯函数生成同样大小的窗函数
win= win./max(win(:));                       %窗口函数归一化
H=fwind2(Hd,win);                           %利用窗口函数产生实际的带通滤波器 
subplot(2, 2, 3); freqz2(H);
ff= imfilter (J1,H);
subplot(2, 2, 4); imshow(ff); 


3、图像复原

图像滤波:
J = WIENER2(I,[M N]): 对灰度图像实施维纳自适应滤波 ,[M N]像素领域大小
C=conv2(A,B) : 计算矩阵 A B 的卷积

举例:

InImg=imread('d:\photo\yng.jpg');
I=rgb2gray(InImg);
J1=imnoise(I, 'gaussian');
B1=[0 0.2 0;0.2 0.2 0.2; 0 0.2 0];   %平滑滤波器
H = fspecial('average',[5 5]);
Blurred1 = imfilter (J1,H);
H = fspecial('gaussian',[5 5]);
Blurred2 = imfilter (J1,H);
K = wiener2(J1,[5 5]);
subplot(1, 5, 1); imshow(J1) ; %显示噪声图像
title('高斯噪声图像');
subplot(1, 5, 2); imshow(Blurred1) ; %显示均值滤波图像
title('均值滤波图像');
subplot(1, 5, 3); imshow(Blurred2) ; % 显示高斯滤波图像
title('高斯滤波图像');
subplot(1, 5, 4); imshow(K);% 显示维纳滤波器滤波图像
title('维纳滤波器滤波图像');
C1=conv2(J1,B1, 'same'); %对加噪后的图像平滑滤波
C1=mat2gray(C1); %将矩阵转换为灰度图像
subplot(1, 5, 5); imshow(C1);% 显示平滑图像
title('平滑图像');


4、图像压缩

哈夫曼编码:无损压缩

步骤:1)缩减信源 2)尽可能少的调动信源符号排序 3)规定大概率事件编码

 clear 
 close all;  %定义HufData/Len为全局变量的结构体 
 global HufData; 
 global Len;  
 disp('计算机正在准备输出霍夫曼编码结果,请耐心等待……'); %原始码字的灰度 
a=imread('d:/photo/hua.jpg'); 
a=rgb2gray(a);
 figure; 
 subplot(1,2,1); imshow(a);
 %取消坐标轴和边框 
 axis off 
 box off  
 title('Tokyo Towers','fontsize',13); 
 subplot(1,2,2); 
 axis off 
 box off 
 imhist(a);  
 title('图像灰度直方图','fontsize',13);%图像的灰度统计 
 GrayStatistics=imhist(a); 
 GrayStatistics=GrayStatistics'; 
GrayRatioo=GrayStatistics/sum(GrayStatistics); 
GrayRatioNO=find(GrayRatioo~=0);
GrayRatioyes=find(GrayRatioo==0);
Len=length(GrayRatioNO);  %初始化灰度集,防止系统随即赋予其垃圾值 
GrayRatio=ones(1,Len); 
for i=1:Len  
    GrayRatio(i)=GrayRatioo(i);  
end
GrayRatio=abs(sort(-GrayRatio)); 
for i=1:Len  
    HufData(i).value=GrayRatio(i); %将图像灰度概率赋予结构体 
end  % 霍夫曼编码/霍夫曼编码 


HuffmanCode(Len); %输出码字 
lavg1=0;
for i=1:Len  
    tmpData=HufData(i).code
    str='';  
    for j=1:length(tmpData) ; 
         str=strcat(str,num2str(tmpData(j))); 
         disp(strcat('a','= ',str)); 
    end
       len1=length(tmpData) ;
       lavg1=lavg1+GrayRatio(1,i)*len1;
        
end
ratio_delet=8/lavg1;
 str='';
 str=strcat(str,num2str(ratio_delet)); 

 disp(strcat('压缩率','= ',str)) 


5、图像分割(边缘提取)

1)图像几何纠正、边缘检测 

B=imresize(A,m,type): 图像大小调整

B=imrotate(A,angle,method): 图像旋转调整

最近邻插值法:将变换后的图像中的原像素点最邻近像素的灰度值赋给原像素点的方法
双线性插值法:
核心思想是在两个方向分别进行一次线性插值。

举例:

InImg=imread('d:\photo\tail.bmp');
I=rgb2gray(InImg);
B1=imresize(I,1.5, 'nearest');
B2=imresize(I,1.5, 'bilinear');
C1= imrotate (I,45, 'nearest');
C2= imrotate (I,45, 'bilinear');
subplot(231);imshow(I) ;%显示原始图像于
title('原始图像');
subplot(232); imshow(B1) ;%显示调整图像(最近邻插值)
title('最近邻插值图像');
subplot(233); imshow(B2) ;% 显示调整图像(双线性插值)
title('双线性插值图像');
subplot(234); imshow(C1);% 显示旋转图像(最近邻插值)
title('旋转最近邻插值图像');
subplot(235); imshow(C2);% 显示旋转图像(双线性插值)
title('旋转双线性插值');


2)边缘提取

BW=edge(I,method,thresh): 检测灰度图像的边缘

举例:

InImg=imread('d:\photo\ying.jpg');
I=rgb2gray(InImg);
BW1= edge (I, 'sobel',0.1);%sobel边缘检测器
BW2= edge (I, 'prewitt',0.1);%prewitt边缘检测器
BW3= edge (I, 'roberts',0.1);%roberts边缘检测器
BW4= edge (I, 'log',0.01,2.0);%log边缘检测器
subplot(221); imshow(BW1) ;% 显示边缘图像
title('sobel边缘图像');
subplot(222); imshow(BW2) ;%显示边缘图像
title('prewitt边缘图像');
subplot(223); imshow(BW3) ;% 显示边缘图像
title('roberts边缘图像');
subplot(224); imshow(BW4) ;% 显示边缘图像
title('log边缘图像');




边缘提取

PHP图像处理技术

阅读数 21

DR图像处理技术

阅读数 4414

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