2016-02-24 21:04:01 jly58fgjk 阅读数 2936
  • Google级大神带你学AI:入门到实战(Keras/Tensorflow...

    近几年深度学习已成为最热门的技术,掌握深度学习技术也能够在面试中为自己赢得更多的薪酬。因此,大部分开发者都有想要入门深度学习的想法,但在平时做的业务中,很少有机会全方位系统性的实践深度学习的数据处理、模型训练、参数调优和服务部署的全流程,所以这方面的锻炼肯定不多。 限时7天,原价 299元!前500名,仅69元买完就能学! 彭靖田老师结合自己过去多年深度学习一线工作中积累的实战经验,为深度学习理论知识和4个深度学习应用都设计了真实的代码实例。希望用理论加实践的方式,手把手带你系统、全面、高强度的学习深度学习,直观高效地提高你的深度学习基础和实践能力,教会你如何实现自己的深度学习模型,带你进行模型调优和服务部署,帮你跨过知识到应用的鸿沟。 作者简介 彭靖田,Google Developer Experts。曾为 TensorFlow Top 40 的贡献者,著书《深入理解TensorFlow》,是国内第一本深度剖析 Google AI 框架的畅销书。曾从0到1深入参与了华为 2012 实验室深度学习平台和华为深度学习云服务的设计与研发工作。现任,品览Pinlan联合创始人兼CTO,刚完成 Pre-A 轮数千万融资。 课程设计 一、课程会讲哪些知识? 整个课程以理论加实战为核心,从基础原理、代码案例、模型设计、训练流程、模型评估、参数调优、服务部署铺开,带你手把手入门深度学习,一次性系统掌握实践深度学习的所有知识和流程。下面是课程的知识概览思维导图。 课程包含思维导图上的所有内容(价值299元)前500名立减130元,仅69元买完就能学! 二、课程是怎么设计的?   深度学习基础篇,首先帮你梳理人工智能技术发展脉络,让你理解深度学习凭什么成为主流,并结合代码案例详细讲解深度学习的基础概念:神经元、神经网络层、张量、计算方法和梯度优化。   深度学习入门篇,手把手教你搭建自己的模型开发环境,帮你搞懂深度学习模型训练的计算原理和实践工具 Keras ,带你系统掌握数据预处理、模型评估、解决过拟合问题的实践技能。   深度学习实战篇,将带你从0到1 实践模型设计、代码实现、参数调优、特征提取、模型微调等关键核心技巧,并告诉你如何平衡数据与模型的复杂度。4 个实战案例从经典的猫狗分类问题出发,由简易难地带你深入学习,最终带你实践技术领先的目标检测YoloV3 和图像分类MobileNet 模型,并落地应用。   三、需要什么基础? 1. 课程面向所有对深度学习感兴趣的程序员,即使没有任何人工智能和计算机科学背景,也可以学习和掌握。

    1540 人正在学习 去看看 彭靖田

学习了数字图像图像处理一段时间,下面是我对预处理方面的一些总结。

首先,了解了预处理对数字图像有什么影响?

预处理的主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而改进特征抽取、图像分割、匹配和识别的可靠性。预处理过程一般有数字化、几何变换、归一化、平滑、复原和增强等步骤。下面是我对图像增强的总结。

图像增强有很多种方法,针对不同图像要采取不同的方法,直方图均衡化、对比度拉伸是常用到的方法,使灰度图像颜色更加分明,针对含有噪声的图像。可以采用滤波,包含平滑滤波和锐化滤波。

一、直方图处理

1、直方图均衡化

直方图均衡化就是一种能仅靠输入图像直方图信息自动达到这种效果的变换函数。

它的基本思想是对图像中像素个数多的灰度级进行展宽,而对图像中像素个数少的灰度进行压缩,从而扩展像原取值的动态范围,提高了对比度和灰度色调的变化,使图像更加清晰。直方图均衡化是一种对图像的非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。

       函数:histeq

实现代码如下:I=imread('2.jpg');
                               I=rgb2gray(I);
                             %K=16; 
                            %H=histeq(I,K); 
                            H=histeq(I);

                    figure,,imshow(H); 

2、对比度拉伸   

函数:imadjust

代码例如:

I=imadjust(I2,stretchlim(I2),[0,1]);

二、滤波法

均值滤波

均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。

模板有3*3、5*5、7*7三种。

实现代码如下:

clc;clear;close all;
img=rgb2gray(imread('lena1.jpg'));
figure;imshow(img);  
img_noise=double(imnoise(img,'gaussian',0.006));%添加高斯噪声 
figure,imshow(img_noise,[]); 
img_mean=imfilter(img_noise,fspecial('average',3)); %均值模板3*3
figure;imshow(img_mean,[]);title('de-noise by mean filter');
imag_mean=exp(imfilter(log(img_noise),fspecial('average',5)));%模板5*5 
figure;imshow(img_mean,[]),title('de-noise by mean filter');
Q=-1.5;  
img_mean=imfilter(img_noise.^(Q+1),fspecial('average',3))./imfilter(img_noise.^Q,fspecial('average',3)); 
figure;imshow(img_mean,[]);title('de-noise by mean filter'); 
Q=1.5;  img_mean=imfilter(img_noise.^(Q+1),fspecial('average',3))./imfilter(img_noise.^Q,fspecial('average',3)); 
figure;imshow(img_mean,[]);title('de-noise by mean filter');

中值滤波

中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为3*3,5*5区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。

实现代码如下:

img_median=medfilt2(img_noise);%中值滤波 
      figure;imshow(img_median,[]);title('de-noise by median filter')%中值滤波结果; 
     img_median2=medfilt2(img_midian); 
     figure;imshow(img_median2,[]);title('de-noise by median filter');

上述两种为平滑滤波

锐化滤波

  锐化用于补偿和增加图像的高频成分,使图像中的地物边界、区域边缘、线条、纹理特征和精细结构特征等更加清晰、鲜明。

利用算子prewitt、sobert、拉普拉斯算子实现

clc;clear;close all;
I=imread('lena.jpg');
%I=rgb2gray(I); 
subplot(221),imshow(I); title('原图');
hs=fspecial('sobel');
S=imfilter(I,hs);
hp=fspecial('prewitt'); 
P=imfilter(I,hs); 
A=double(I);%双精度型  
H=[0 1 0,1 -4 1,0 1 0];%拉普拉斯算子 
J=conv2(I,H,'same'); 
K=I-J;  
subplot(222),imshow(J); title('拉普拉斯锐化图像');
subplot(223),imshow(S); title('sobel算子锐化图像');
subplot(224),imshow(P); title('prewitt算子锐化图像');


低通滤波(平滑)

下面为巴特沃斯低通滤波的实现代码:

clc;clear;close all;
I=imread('lena1.jpg');
I=rgb2gray(I);
figure,imshow(I);
I1=fftshift(fft2(I));
[M,N]=size(I1);
n=2;d0=30;
n1=floor(M/2);
n2=floor(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-n1)^2+(j-n2)^2);
        H=1/(1+(d/d0)^(2*n));
        I2(i,j)=H*I1(i,j);
    end
end
I2=ifftshift(I2);
I3=real(ifft2(I2));
figure,imshow(I3,[]);

高通滤波(锐化)

下面代码为巴特沃斯高通滤波的实现代码:

clc;clear;close all;
f1=imread('lena1.jpg');
f1=rgb2gray(f1);
F= double(f1);     % 数据类型转换,MATLAB不支持图像的无符号整型的计算  
G = fft2(F);        % 傅立叶变换   
G = fftshift(G);     % 转换数据矩阵  
[M,N]=size(G);    
nn = 2;           % 二阶巴特沃斯(Butterworth)高通滤波器  
d0 = 5;  
m = fix(M/2);  
n = fix(N/2);  
for i = 1 : M       
    for j = 1 : N     
        d = sqrt((i-m)^2+(j-n)^2);   
        if (d == 0)      
             h = 0;   
        else
            h=1/(1+0.414*(d0/d)^(2*nn));% 计算传递函数   
        end;      
        result(i,j) = h * G(i,j);     
    end;  
end; 
result = ifftshift(result);   
J2= ifft2(result); 
J3= uint8(real(J2));
subplot(121);imshow(f1); title('灰色图像'); 
subplot(122);imshow(J3);  % 滤波后图像显示
title('滤波后的图像');

高斯滤波

部分代码:

%gaussian低通滤波
H=fspecial('gaussian',7,3);
F{2}=double(filter2(H,I));
figure,imshow(F{2},[]);


滤波部分实现代码网址

http://wenku.baidu.com/link?url=3U5MZxgxbursdIBYSVden1i8rxSxFlBaf_glnibz8Me2hG6vADZz5419XQIRlc5OrpGM8uibQI_siBwoiFvaDVPM1ewwgRV48voh7sgIoIi

http://wenku.baidu.com/link?url=esi3wmkrucc4k3lbHFtSGL2OWFMjZwz_hoB_aQQh6GiXDwxni9GFnMGhJVOWgBa6Ulm3Vf1qB0auBjKRyCY_EBKPpgMZphXeovcTRG1WyHK


 

2017-12-18 20:54:01 IT_job 阅读数 14552
  • Google级大神带你学AI:入门到实战(Keras/Tensorflow...

    近几年深度学习已成为最热门的技术,掌握深度学习技术也能够在面试中为自己赢得更多的薪酬。因此,大部分开发者都有想要入门深度学习的想法,但在平时做的业务中,很少有机会全方位系统性的实践深度学习的数据处理、模型训练、参数调优和服务部署的全流程,所以这方面的锻炼肯定不多。 限时7天,原价 299元!前500名,仅69元买完就能学! 彭靖田老师结合自己过去多年深度学习一线工作中积累的实战经验,为深度学习理论知识和4个深度学习应用都设计了真实的代码实例。希望用理论加实践的方式,手把手带你系统、全面、高强度的学习深度学习,直观高效地提高你的深度学习基础和实践能力,教会你如何实现自己的深度学习模型,带你进行模型调优和服务部署,帮你跨过知识到应用的鸿沟。 作者简介 彭靖田,Google Developer Experts。曾为 TensorFlow Top 40 的贡献者,著书《深入理解TensorFlow》,是国内第一本深度剖析 Google AI 框架的畅销书。曾从0到1深入参与了华为 2012 实验室深度学习平台和华为深度学习云服务的设计与研发工作。现任,品览Pinlan联合创始人兼CTO,刚完成 Pre-A 轮数千万融资。 课程设计 一、课程会讲哪些知识? 整个课程以理论加实战为核心,从基础原理、代码案例、模型设计、训练流程、模型评估、参数调优、服务部署铺开,带你手把手入门深度学习,一次性系统掌握实践深度学习的所有知识和流程。下面是课程的知识概览思维导图。 课程包含思维导图上的所有内容(价值299元)前500名立减130元,仅69元买完就能学! 二、课程是怎么设计的?   深度学习基础篇,首先帮你梳理人工智能技术发展脉络,让你理解深度学习凭什么成为主流,并结合代码案例详细讲解深度学习的基础概念:神经元、神经网络层、张量、计算方法和梯度优化。   深度学习入门篇,手把手教你搭建自己的模型开发环境,帮你搞懂深度学习模型训练的计算原理和实践工具 Keras ,带你系统掌握数据预处理、模型评估、解决过拟合问题的实践技能。   深度学习实战篇,将带你从0到1 实践模型设计、代码实现、参数调优、特征提取、模型微调等关键核心技巧,并告诉你如何平衡数据与模型的复杂度。4 个实战案例从经典的猫狗分类问题出发,由简易难地带你深入学习,最终带你实践技术领先的目标检测YoloV3 和图像分类MobileNet 模型,并落地应用。   三、需要什么基础? 1. 课程面向所有对深度学习感兴趣的程序员,即使没有任何人工智能和计算机科学背景,也可以学习和掌握。

    1540 人正在学习 去看看 彭靖田

       图像分析中,图像质量的好坏直接影响识别算法的设计与效果的精度,因此在图像分析(特征提取、分割、匹配和识别等)前,需要进行预处理。图像预处理的主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性、最大限度地简化数据,从而改进特征提取、图像分割、匹配和识别的可靠性。一般的预处理流程为:1灰度化->2几何变换->3图像增强

1灰度化

       对彩色图像进行处理时,我们往往需要对三个通道依次进行处理,时间开销将会很大。因此,为了达到提高整个应用系统的处理速度的目的,需要减少所需处理的数据量。在图像处理中,常用的灰度化方法:1.分量法2.最大值法3.平均值法4.加权平均法

2几何变换

        图像几何变换又称为图像空间变换,通过平移、转置、镜像、旋转、缩放等几何变换对采集的图像进行处理,用于改正图像采集系统的系统误差和仪器位置(成像角度、透视关系乃至镜头自身原因)的随机误差。此外,还需要使用灰度插值算法,因为按照这种变换关系进行计算,输出图像的像素可能被映射到输入图像的非整数坐标上。通常采用的方法有最近邻插值、双线性插值和双三次插值

3图像增强

       增强图像中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合,有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。图像增强算法可分成两大类:空间域法和频率域法。

3.1空间域法

       空间域法是一种直接图像增强算法,分为点运算算法邻域去噪算法。点运算算法即灰度级校正、灰度变换(又叫对比度拉伸)和直方图修正等。邻域增强算法分为图像平滑锐化两种。平滑常用算法有均值滤波、中值滤波、空域滤波。锐化常用算法有梯度算子法、二阶导数算子法、高通滤波、掩模匹配法等。

3.2频率域法

        频率域法是一种间接图像增强算法,常用的频域增强方法有低通滤波器高通滤波器。低频滤波器有理想低通滤波器、巴特沃斯低通滤波器、高斯低通滤波器、指数滤波器等。高通滤波器有理想高通滤波器、巴特沃斯高通滤波器、高斯高通滤波器、指数滤波器。
2018-11-19 15:09:43 YeziTong 阅读数 435
  • Google级大神带你学AI:入门到实战(Keras/Tensorflow...

    近几年深度学习已成为最热门的技术,掌握深度学习技术也能够在面试中为自己赢得更多的薪酬。因此,大部分开发者都有想要入门深度学习的想法,但在平时做的业务中,很少有机会全方位系统性的实践深度学习的数据处理、模型训练、参数调优和服务部署的全流程,所以这方面的锻炼肯定不多。 限时7天,原价 299元!前500名,仅69元买完就能学! 彭靖田老师结合自己过去多年深度学习一线工作中积累的实战经验,为深度学习理论知识和4个深度学习应用都设计了真实的代码实例。希望用理论加实践的方式,手把手带你系统、全面、高强度的学习深度学习,直观高效地提高你的深度学习基础和实践能力,教会你如何实现自己的深度学习模型,带你进行模型调优和服务部署,帮你跨过知识到应用的鸿沟。 作者简介 彭靖田,Google Developer Experts。曾为 TensorFlow Top 40 的贡献者,著书《深入理解TensorFlow》,是国内第一本深度剖析 Google AI 框架的畅销书。曾从0到1深入参与了华为 2012 实验室深度学习平台和华为深度学习云服务的设计与研发工作。现任,品览Pinlan联合创始人兼CTO,刚完成 Pre-A 轮数千万融资。 课程设计 一、课程会讲哪些知识? 整个课程以理论加实战为核心,从基础原理、代码案例、模型设计、训练流程、模型评估、参数调优、服务部署铺开,带你手把手入门深度学习,一次性系统掌握实践深度学习的所有知识和流程。下面是课程的知识概览思维导图。 课程包含思维导图上的所有内容(价值299元)前500名立减130元,仅69元买完就能学! 二、课程是怎么设计的?   深度学习基础篇,首先帮你梳理人工智能技术发展脉络,让你理解深度学习凭什么成为主流,并结合代码案例详细讲解深度学习的基础概念:神经元、神经网络层、张量、计算方法和梯度优化。   深度学习入门篇,手把手教你搭建自己的模型开发环境,帮你搞懂深度学习模型训练的计算原理和实践工具 Keras ,带你系统掌握数据预处理、模型评估、解决过拟合问题的实践技能。   深度学习实战篇,将带你从0到1 实践模型设计、代码实现、参数调优、特征提取、模型微调等关键核心技巧,并告诉你如何平衡数据与模型的复杂度。4 个实战案例从经典的猫狗分类问题出发,由简易难地带你深入学习,最终带你实践技术领先的目标检测YoloV3 和图像分类MobileNet 模型,并落地应用。   三、需要什么基础? 1. 课程面向所有对深度学习感兴趣的程序员,即使没有任何人工智能和计算机科学背景,也可以学习和掌握。

    1540 人正在学习 去看看 彭靖田

概述:

 

1)预处理是指处于最低抽象层次的图像上所进行的操作,这时处理的输入和输出都是亮度图像

2)预处理并不会增加图像的信息量预处理有助于抑制与特殊的图像处理或分析任务无关的信息。因此预处理的目的是改善图像数据,抑制不需要的变形或者增强某些对于后续处理重要的图像特征。

图像预处理方法按照在计算新像素亮度时所使用的像素邻域的大小可以分为四类:

1)像素亮度变化

2)几何变换

3)局部邻域预处理

4)图像复原

(1)像素亮度变化

 

1)有两类像素亮度变换

   亮度矫正

   灰度级变换

2)亮度矫正在修改像素的亮度时要考虑该像素原来的亮度和其在图像中的位置

3)灰度级变换在修改像素的亮度时无须考虑其位置

4)常用的亮度变换有:

   亮度阈值化

   直方图均衡化

   对数的灰度级变换

   查找表变换

   伪彩色变换

5)直方图均衡化目的是创建一幅在整个亮度范围内具有相同的亮度图像

 

(2)几何变换

 

1)几何变换可以消除图像获取时所出现的几何变形

2)几何变换一般是由两个基本步骤组成:

   像素坐标变换

   亮度插值

3)像素坐标变换将输入图像像素映射到输出图像,常使用“仿射变换”和“双线性变化”

4)经过变换,输出点的坐标一般并不符合数字离散光栅;插值被用来确定输出像素的亮度。常使用“最近邻”、“线性”、“双三次”。

 

3)局部预处理

 

1)局部预处理方法是使用输入图像中一个像素的小邻域来产生输出图像中新的亮度数值的方法。

2)预处理常见的有两组:“平滑”和“边缘检测”。

3)平滑的目的在于抑制噪声或其他小的波动,这等同于在傅里叶频域抑制高频部分,

4)基于直接平均的平滑方法会模糊边缘。改进的方法通过在一致性的局部区域内平均来减小模糊。

5)“中值”滤波是一种非线性操作,它用邻域中亮度的中值代替图像当前的点来减少模糊。

6)“梯度算子”确定“边缘”,边缘是亮度函数发生急剧变化的位置。它们的效果类似于在傅里叶频域抑制低频部分。

7)边缘是赋给单个像素的性质,它既有“幅值(强度)”又有“方向”。

8)多数梯度算子可以用“卷积掩膜”来表达,例子包括Roberts、Laplace、Prewitt、Sobel、Kirsch算子。

9)卷积边缘检测子的主要缺点是依赖尺度且对噪声敏感。选择某个最好的局部邻域算子尺度并不是那么容易决定的。

10)二阶导数“过零点”比小尺度的梯度检测子更稳定,可以用Laplace ofGaussians(LoG)或difference ofGaussians(DoG)来计算

11)Canny边缘检测算子对受白噪声影响的阶跃型边缘是最优的。最优性标准是基于如下要求:“检测”重要边缘、小的“定位”误差、“单边缘响应”。该检测子与一个对称2D高斯做卷积,再沿梯度方向微分;接着步骤包括“非最大边缘抑制”、“滞后阈值化处理”和“特征综合”。

12)在多光谱图像中也可以检测边缘

13)其他局部预处理运算包括“线条寻找”、“线条细化”、“线条补缺”以及“兴趣点检测”

14)一幅图像中诸如角点和最大稳定极值区域等结构包括更丰富的信息,检测边缘更为稳定。它们常用于图像匹配。

 

 

(4)图像复原

 

1)图像复原旨在利用有关退化性质知识来抑制退化。多数图像复原方法是基于整幅图像上的全局性“去卷积”的方法。

2)有三种典型的退化具有简单的函数形式:物体相对于摄像机作近似均速的运动、不当的镜头焦距、大气扰动。

3)“逆滤波”假设退化是由线性函数引起的。

4)“维纳滤波”给出了对未被噪声污染的原始图像的一个最小均方误差估计;一般而言,它是退化图像的非线性函数。

 

2018-12-07 20:49:51 yql_617540298 阅读数 664
  • Google级大神带你学AI:入门到实战(Keras/Tensorflow...

    近几年深度学习已成为最热门的技术,掌握深度学习技术也能够在面试中为自己赢得更多的薪酬。因此,大部分开发者都有想要入门深度学习的想法,但在平时做的业务中,很少有机会全方位系统性的实践深度学习的数据处理、模型训练、参数调优和服务部署的全流程,所以这方面的锻炼肯定不多。 限时7天,原价 299元!前500名,仅69元买完就能学! 彭靖田老师结合自己过去多年深度学习一线工作中积累的实战经验,为深度学习理论知识和4个深度学习应用都设计了真实的代码实例。希望用理论加实践的方式,手把手带你系统、全面、高强度的学习深度学习,直观高效地提高你的深度学习基础和实践能力,教会你如何实现自己的深度学习模型,带你进行模型调优和服务部署,帮你跨过知识到应用的鸿沟。 作者简介 彭靖田,Google Developer Experts。曾为 TensorFlow Top 40 的贡献者,著书《深入理解TensorFlow》,是国内第一本深度剖析 Google AI 框架的畅销书。曾从0到1深入参与了华为 2012 实验室深度学习平台和华为深度学习云服务的设计与研发工作。现任,品览Pinlan联合创始人兼CTO,刚完成 Pre-A 轮数千万融资。 课程设计 一、课程会讲哪些知识? 整个课程以理论加实战为核心,从基础原理、代码案例、模型设计、训练流程、模型评估、参数调优、服务部署铺开,带你手把手入门深度学习,一次性系统掌握实践深度学习的所有知识和流程。下面是课程的知识概览思维导图。 课程包含思维导图上的所有内容(价值299元)前500名立减130元,仅69元买完就能学! 二、课程是怎么设计的?   深度学习基础篇,首先帮你梳理人工智能技术发展脉络,让你理解深度学习凭什么成为主流,并结合代码案例详细讲解深度学习的基础概念:神经元、神经网络层、张量、计算方法和梯度优化。   深度学习入门篇,手把手教你搭建自己的模型开发环境,帮你搞懂深度学习模型训练的计算原理和实践工具 Keras ,带你系统掌握数据预处理、模型评估、解决过拟合问题的实践技能。   深度学习实战篇,将带你从0到1 实践模型设计、代码实现、参数调优、特征提取、模型微调等关键核心技巧,并告诉你如何平衡数据与模型的复杂度。4 个实战案例从经典的猫狗分类问题出发,由简易难地带你深入学习,最终带你实践技术领先的目标检测YoloV3 和图像分类MobileNet 模型,并落地应用。   三、需要什么基础? 1. 课程面向所有对深度学习感兴趣的程序员,即使没有任何人工智能和计算机科学背景,也可以学习和掌握。

    1540 人正在学习 去看看 彭靖田

一、标准化处理与归一化

        对图像做数据预处理,最常见的对图像预处理方法有两种:

(1)白化处理(图像标准化处理);

        图像标准化是将数据通过去均值实现中心化的处理,根据凸优化理论与数据概率分布相关知识,数据中心化符合数据分布规律,更容易取得训练之后的泛化效果,数据标准化是数据预处理的常见方法之一。

(2)归一化处理。

       归一化不会改变图像本身的信息存储,取值范围从0~255已经转化为0~1之间。

源码:

import numpy as np
import cv2

pic_path = 'F:/a.jpg'

def normalization(input):
    pic = cv2.imread(input)
    pic = pic.astype(np.float32)
    # zero-center
    pic -= [np.mean(pic[..., 0]), np.mean(pic[..., 1]), np.mean(pic[..., 2])]
    # normalize
    pic /= [np.std(pic[..., 0]), np.std(pic[..., 1]), np.std(pic[..., 2])]

    print(pic[..., 0])
    pic *= (pic>0)
    pic *= 100
    pic = pic * (pic<=255) + 255 * (pic>255)
    pic = pic.astype(np.uint8)
    print(pic[..., 0])
    #cv2.imshow('', pic)
    cv2.imwrite('F:/b.jpg',pic)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

if __name__ == '__main__':
    # 均值0中心化(zero-center), 规范化(normalize)
    normalization(pic_path)

二、直方图与均衡化

       直方图在图像处理中非常重要,利用图像直方图对对比度进行调整的方法。

       基本思想:把原始图的直方图变换为均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。

1. skimage

skimage.exposure.histogram(imagenbins=256)

skimage程序自带了一些示例图片:

2. 绘制直方图

import numpy as np
from skimage import exposure,data

#image = skimage.io.imread('F:/a.jpg')
image =data.camera()*1.0
hist1=np.histogram(image, bins=2)   #用numpy包计算直方图
hist2=exposure.histogram(image, nbins=2)  #用skimage计算直方图
print(hist1)
print(hist2)

from skimage import data
import matplotlib.pyplot as plt
img=data.camera()
plt.figure("hist")
arr=img.flatten()
n, bins, patches = plt.hist(arr, bins=256, normed=1,edgecolor='None',facecolor='red')  
plt.show()

from skimage import data
import matplotlib.pyplot as plt
img=data.chelsea()
ar=img[:,:,0].flatten()
plt.hist(ar, bins=256, normed=1,facecolor='r',edgecolor='r',hold=1)
ag=img[:,:,1].flatten()
plt.hist(ag, bins=256, normed=1, facecolor='g',edgecolor='g',hold=1)
ab=img[:,:,2].flatten()
plt.hist(ab, bins=256, normed=1, facecolor='b',edgecolor='b')
plt.show()

3. 直方图均衡化

 

from skimage import data,exposure
import matplotlib.pyplot as plt
import skimage.io
#img=data.chelsea()
img = skimage.io.imread('F:/a.jpg')
plt.figure("hist",figsize=(8,8))

arr=img.flatten()
plt.subplot(221)
plt.imshow(img,plt.cm.gray)  #原始图像
plt.subplot(222)
plt.hist(arr, bins=256, normed=1,edgecolor='None',facecolor='red') #原始图像直方图

img1=exposure.equalize_hist(img)
arr1=img1.flatten()
plt.subplot(223)
plt.imshow(img1,plt.cm.gray)  #均衡化图像
plt.subplot(224)
plt.hist(arr1, bins=256, normed=1,edgecolor='None',facecolor='red') #均衡化直方图

plt.show()

2018-11-05 11:46:30 flyfor2013 阅读数 627
  • Google级大神带你学AI:入门到实战(Keras/Tensorflow...

    近几年深度学习已成为最热门的技术,掌握深度学习技术也能够在面试中为自己赢得更多的薪酬。因此,大部分开发者都有想要入门深度学习的想法,但在平时做的业务中,很少有机会全方位系统性的实践深度学习的数据处理、模型训练、参数调优和服务部署的全流程,所以这方面的锻炼肯定不多。 限时7天,原价 299元!前500名,仅69元买完就能学! 彭靖田老师结合自己过去多年深度学习一线工作中积累的实战经验,为深度学习理论知识和4个深度学习应用都设计了真实的代码实例。希望用理论加实践的方式,手把手带你系统、全面、高强度的学习深度学习,直观高效地提高你的深度学习基础和实践能力,教会你如何实现自己的深度学习模型,带你进行模型调优和服务部署,帮你跨过知识到应用的鸿沟。 作者简介 彭靖田,Google Developer Experts。曾为 TensorFlow Top 40 的贡献者,著书《深入理解TensorFlow》,是国内第一本深度剖析 Google AI 框架的畅销书。曾从0到1深入参与了华为 2012 实验室深度学习平台和华为深度学习云服务的设计与研发工作。现任,品览Pinlan联合创始人兼CTO,刚完成 Pre-A 轮数千万融资。 课程设计 一、课程会讲哪些知识? 整个课程以理论加实战为核心,从基础原理、代码案例、模型设计、训练流程、模型评估、参数调优、服务部署铺开,带你手把手入门深度学习,一次性系统掌握实践深度学习的所有知识和流程。下面是课程的知识概览思维导图。 课程包含思维导图上的所有内容(价值299元)前500名立减130元,仅69元买完就能学! 二、课程是怎么设计的?   深度学习基础篇,首先帮你梳理人工智能技术发展脉络,让你理解深度学习凭什么成为主流,并结合代码案例详细讲解深度学习的基础概念:神经元、神经网络层、张量、计算方法和梯度优化。   深度学习入门篇,手把手教你搭建自己的模型开发环境,帮你搞懂深度学习模型训练的计算原理和实践工具 Keras ,带你系统掌握数据预处理、模型评估、解决过拟合问题的实践技能。   深度学习实战篇,将带你从0到1 实践模型设计、代码实现、参数调优、特征提取、模型微调等关键核心技巧,并告诉你如何平衡数据与模型的复杂度。4 个实战案例从经典的猫狗分类问题出发,由简易难地带你深入学习,最终带你实践技术领先的目标检测YoloV3 和图像分类MobileNet 模型,并落地应用。   三、需要什么基础? 1. 课程面向所有对深度学习感兴趣的程序员,即使没有任何人工智能和计算机科学背景,也可以学习和掌握。

    1540 人正在学习 去看看 彭靖田

概述:

1)预处理是指处于最低抽象层次的图像上所进行的操作,这时处理的输入和输出都是亮度图像。
2)预处理并不会增加图像的信息量预处理有助于抑制与特殊的图像处理或分析任务无关的信息。因此预处理的目的是改善图像数据,抑制不需要的变形或者增强某些对于后续处理重要的图像特征。

图像预处理方法按照在计算新像素亮度时所使用的像素邻域的大小可以分为四类:

1)像素亮度变化
2)几何变换
3)局部邻域预处理
4)图像复原

(1)像素亮度变化
1)有两类像素亮度变换
亮度矫正
灰度级变换
2)亮度矫正在修改像素的亮度时要考虑该像素原来的亮度和其在图像中的位置
3)灰度级变换在修改像素的亮度时无须考虑其位置
4)常用的亮度变换有:
亮度阈值化
直方图均衡化
对数的灰度级变换
查找表变换
伪彩色变换
5)直方图均衡化目的是创建一幅在整个亮度范围内具有相同的亮度图像
在这里插入图片描述
(2)几何变换
1)几何变换可以消除图像获取时所出现的几何变形
2)几何变换一般是由两个基本步骤组成:
像素坐标变换
亮度插值
3)像素坐标变换将输入图像像素映射到输出图像,常使用“仿射变换”和“双线性变化”
4)经过变换,输出点的坐标一般并不符合数字离散光栅;插值被用来确定输出像素的亮度。常使用“最近邻”、“线性”、“双三次”。
在这里插入图片描述
(3)局部预处理
1)局部预处理方法是使用输入图像中一个像素的小邻域来产生输出图像中新的亮度数值的方法。
2)预处理常见的有两组:“平滑”和“边缘检测”。
3)平滑的目的在于抑制噪声或其他小的波动,这等同于在傅里叶频域抑制高频部分,
4)基于直接平均的平滑方法会模糊边缘。改进的方法通过在一致性的局部区域内平均来减小模糊。
5)“中值”滤波是一种非线性操作,它用邻域中亮度的中值代替图像当前的点来减少模糊。
6)“梯度算子”确定“边缘”,边缘是亮度函数发生急剧变化的位置。它们的效果类似于在傅里叶频域抑制低频部分。
7)边缘是赋给单个像素的性质,它既有“幅值(强度)”又有“方向”。
8)多数梯度算子可以用“卷积掩膜”来表达,例子包括Roberts、Laplace、Prewitt、Sobel、Kirsch算子。
9)卷积边缘检测子的主要缺点是依赖尺度且对噪声敏感。选择某个最好的局部邻域算子尺度并不是那么容易决定的。
10)二阶导数“过零点”比小尺度的梯度检测子更稳定,可以用Laplace of Gaussians(LoG)或difference of Gaussians(DoG)来计算
11)Canny边缘检测算子对受白噪声影响的阶跃型边缘是最优的。最优性标准是基于如下要求:“检测”重要边缘、小的“定位”误差、“单边缘响应”。该检测子与一个对称2D高斯做卷积,再沿梯度方向微分;接着步骤包括“非最大边缘抑制”、“滞后阈值化处理”和“特征综合”。
12)在多光谱图像中也可以检测边缘
13)其他局部预处理运算包括“线条寻找”、“线条细化”、“线条补缺”以及“兴趣点检测”
14)一幅图像中诸如角点和最大稳定极值区域等结构包括更丰富的信息,检测边缘更为稳定。它们常用于图像匹配。
在这里插入图片描述
(4)图像复原
1)图像复原旨在利用有关退化性质知识来抑制退化。多数图像复原方法是基于整幅图像上的全局性“去卷积”的方法。
2)有三种典型的退化具有简单的函数形式:物体相对于摄像机作近似均速的运动、不当的镜头焦距、大气扰动。
3)“逆滤波”假设退化是由线性函数引起的。
4)“维纳滤波”给出了对未被噪声污染的原始图像的一个最小均方误差估计;一般而言,它是退化图像的非线性函数。
概述:
1)预处理是指处于最低抽象层次的图像上所进行的操作,这时处理的输入和输出都是亮度图像。
2)预处理并不会增加图像的信息量预处理有助于抑制与特殊的图像处理或分析任务无关的信息。因此预处理的目的是改善图像数据,抑制不需要的变形或者增强某些对于后续处理重要的图像特征。
在这里插入图片描述
在这里插入图片描述
欢迎关注和订阅AI算法与图像处理(AI_study)回复“图像处理”即可获取书籍资料
不定期更新和分享高质量的文章和学习资料,让我一起进步吧,fighting

在这里插入图片描述

图像预处理

阅读数 1689

一、图像预处理

阅读数 1636

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