图像处理 流程

2016-10-10 18:18:48 yangkunpengD 阅读数 9127

1

I=imread('pout.tif');
figure,imshow(I);
[m,n]=size(I);
Inew=zeros(floor(m/2),n);
for i=1:m
    for j=1:n
    Inew(i,j)=I(2*i-1,j);
    end
end
figure,imshow(uint8(Inew))

2

clc
clear 
x=0:255;
y1=x;
figure,
plot(x,y1,'r')
hold on
y2=255:-1:0;
plot(x,y2,'b')
ylog=255*(log(x+1)/log(256));
plot(x,ylog,'g+')
yexp=255*x.^3/255^3;
plot(x,yexp,'y+')
c=255/255^3;
ynthroot=nthroot((x/c),3);
plot(x,ynthroot,'yo')
3

I=imread('moon.tif');
I=double(I);
[m,n]=size(I);
for i=1:m
    for j=1:n
        if I(i,j)<100
            Inew(i,j)=3*I(i,j);
        elseif I(i,j)>200
            Inew(i,j)=0.8*I(i,j);
        else
            Inew(i,j)=I(i,j);
        end
    end
end
figure,imshow(Inew,[])
4

clear
clc
I=imread('moon.tif');
I=im2double(I);
[m,n]=size(I);
for i=1:m
    for j=1:n
        Inew(i,j)=I(i,j)^0.2;
    end
end
figure,imshow(I,[])
figure,imshow(Inew,[])
5

每个像素点的计算与查找表的比较

clear
clc
I=imread('moon.tif');
I=im2double(I);
[m,n]=size(I);
%循环实现
tic
for i=1:m
    for j=1:n
        Inew(i,j)=255*log(I(i,j)+1)/log(256);
    end
end
toc
%查找表
tic
x=0:255;
c=255/log(256);
y=c*log(x+1);
I_log=uint8(y(x+1));
figure,plot(x,y)
toc
figure,imshow(I_log,[])
figure,imshow(I,[])
figure,imshow(Inew,[])

6

显示一幅图像的直方图

I=imread('pout.tif');
figure,imshow(I)
[m,n]=size(I);
h=zeros(1,256);
for k=0:255
    for i=1:m
        for j=1:n
            if(I(i,j)==k)
               h(k+1)=h(k+1)+1;
            end
        end
    end
end
figure,bar(h)
改进后代码:

I=imread('pout.tif');
figure,imshow(I)
[m,n]=size(I);
h=zeros(1,256);
for i=1:m
    for j=1:n
        h(I(i,j)+1)=h(I(i,j)+1)+1;
    end
end
figure,bar(h)

将一幅图经直方图均衡化处理

I=imread('pout.tif');
figure,imshow(I)
[m,n]=size(I);
h=zeros(1,256);
for i=1:m
    for j=1:n
        h(I(i,j)+1)=h(I(i,j)+1)+1;
    end
end
figure,bar(h)
p=h/(m*n);
sum=0;
for i=1:256
    sum=sum+p(i);
    y(i)=round(sum*255);
end
for i=1:m
    for j=1:n
        Inew(i,j)=y(I(i,j)+1);
    end
end

figure,imshow(unit8(Inew))

7 邻域处理

I=imread('pout.tif');
I=double(I);
%卷积模板的不同处理效果不同
%M=ones(3,3)/9;将一幅图模糊处理; M=[0 -1 0;-1 5 -1;0 -1 0];将一幅图锐化处理,改变中心位置的值有不同效果
%M=[1 1 1;0 0 0;-1 -1 -1];指出原始图像中水平边缘存在位置的图像;M=[1 0 -1;1 0 -1;1 0 -1];指出原始图像中垂直边缘存在位置的图像
M=ones(3,3)/9;
[m,n]=size(I);
Inew=zeros(m,n);
%从2开始到m-1忽略边界
for i=2:m-1     
    for j=2:n-1
      Inew(i,j)=I(i-1,j-1)*M(1,1)+I(i-1,j)*M(1,2)+...
      I(i-1,j+1)*M(1,3)+I(i,j-1)*M(2,1)+I(i,j)*M(2,2)+...
      I(i,j+1)*M(2,3)+I(i+1,j-1)*M(3,1)+I(i+1,j)*M(3,2)+... 
      I(i+1,j+1)*M(3,3);
    end
end
figure,imshow(uint8(Inew))









2013-04-03 19:05:58 liminlu0314 阅读数 19165

一.预处理 
1.降噪处理 
由于传感器的因素,一些获取的遥感图像中,会出现周期性的噪声,我们必须对其进行消除或减弱方可使用。 
(1)除周期性噪声和尖锐性噪声 
周期性噪声一般重叠在原图像上,成为周期性的干涉图形,具有不同的幅度、频率、和相位。它形成一系列的尖峰或者亮斑,代表在某些空间频率位置最为突出。一般可以用带通或者槽形滤波的方法来消除。 
消除尖峰噪声,特别是与扫描方向不平行的,一般用傅立叶变换进行滤波处理的方法比较方便。


图1 消除噪声前


图2 消除噪声后

(2)除坏线和条带 
去除遥感图像中的坏线。遥感图像中通常会出现与扫描方向平行的条带,还有一些与辐射信号无关的条带噪声,一般称为坏线。一般采用傅里叶变换和低通滤波进行消除或减弱。


图3 去条纹前


图4 去条纹后


图5 去条带前

图6 去条带后

2.薄云处理 
由于天气原因,对于有些遥感图形中出现的薄云可以进行减弱处理。 
3.阴影处理 
由于太阳高度角的原因,有些图像会出现山体阴影,可以采用比值法对其进行消除。

二.几何纠正
通常我们获取的遥感影像一般都是Level2级产品,为使其定位准确,我们在使用遥感图像前,必须对其进行几何精纠正,在地形起伏较大地区,还必须对其进行正射纠正。特殊情况下还须对遥感图像进行大气纠正,此处不做阐述。 
1.图像配准 
为同一地区的两种数据源能在同一个地理坐标系中进行叠加显示和数学运算,必须先将其中一种数据源的地理坐标配准到另一种数据源的地理坐标上,这个过程叫做配准。 
(1)影像对栅格图像的配准 
将一幅遥感影像配准到相同地区另一幅影像或栅格地图中,使其在空间位置能重合叠加显示。


图7 图像配准前


图8 图像配准后

(2)影像对矢量图形的配准 
将一幅遥感影像配准到相同地区一幅矢量图形中,使其在空间位置上能进行重合叠加显示。 
2.几何粗纠正 
这种校正是针对引起几何畸变的原因进行的,地面接收站在提供给用户资料前,已按常规处理方案与图像同时接收到的有关运行姿态、传感器性能指标、大气状态、太阳高度角对该幅图像几何畸变进行了校正.
3.几何精纠正 
为准确对遥感数据进行地理定位,需要将遥感数据准确定位到特定的地理坐标系的,这个过程称为几何精纠正。 
(1)图像对图像的纠正 
利用已有准确地理坐标和投影信息的遥感影像,对原始遥感影像进行纠正,使其具有准确的地理坐标和投影信息。 
(2)图像对地图(栅格或矢量) 
利用已有准确地理坐标和投影信息的扫描地形图或矢量地形图,对原始遥感影像进行纠正,使其具有准确的地理坐标和投影信息。


图9 参考地形图


图10 待纠正影像



图11 纠正后影像和地形图套和效果

(3)图像对已知坐标点(地面控制点) 
利用已有准确地理坐标和投影信息的已知坐标点或地面控制点,对原始遥感影像进行纠正,使其具有准确的地理坐标和投影信息。 
4.正射纠正 
利用已有地理参考数据(影像、地形图和控制点等)和数字高程模型数据(DEM、GDEM),对原始遥感影像进行纠正,可消除或减弱地形起伏带来的影像变形,使得遥感影像具有准确的地面坐标和投影信息。 


图12 数字正射影像图

三.图像增强
为使遥感图像所包含的地物信息可读性更强,感兴趣目标更突出,需要对遥感图像进行增强处理。 
1.彩色合成 
为了充分利用色彩在遥感图像判读和信息提取中的优势,常常利用彩色合成的方法对多光谱图像进行处理,以得到彩色图像。 
彩色图像可以分为真彩色图像和假彩色图像。


图13真彩色合成( TM321)


图14 假彩色合成(TM432)

2.直方图变换 
统计每幅图像的各亮度的像元数而得到的随机分布图,即为该幅图像的直方图。 
一般来说,包含大量像元的图像,像元的亮度随机分布应是正态分布。直方图为非正态分布,说明图像的亮度分布偏亮、偏暗或亮度过于集中,图像的对比度小,需要调整该直方图到正态分布,以改善图像的质量。


图15 直方图拉伸前(原图偏暗)


图16 直方图拉伸后


图17 直方图拉伸前(原图对比度不强)


图18 直方图拉伸后(线性拉伸)

3.密度分割 
将灰度图像按照像元的灰度值进行分级,再分级赋以不同的颜色,使原有灰度图像变成伪彩色图像,达到图像增强的目的。


图19 原始图像


图20 密度分割图像

4.灰度颠倒 
灰度颠倒是将图像的灰度范围先拉伸到显示设备的动态范围(如0~255)到饱和状态,然后再进行颠倒,使正像和负像互换。


图21 灰度颠倒前


图22 灰度颠倒后

5.图像间运算 
两幅或多幅单波段图像,空间配准后可进行算术运算,实现图像的增强。常见的有加法运算、减法运算、比值运算和综合运算。例如: 
减法运算:可突现出两波段差值大的地物,如红外-红,可突现植被信息。 
比值运算:常用于计算植被指数、消除地形阴影等。 
植被指数:NDVI=(IR-R)/(IR+R)


图23 原始图像


图24 NDVI植被指数图像

6.邻域增强 
又叫滤波处理,是在被处理像元周围的像元参与下进行的运算处理,邻域的范围取决于滤波器的大小,如3×3或5×5等。 
邻区法处理用于去噪声、图像平滑、锐化和相关运算 。


图25 原始图像


图26 拉普拉斯滤波图像(5×5)

7.主成分分析 
也叫PCA变换,可以用来消除特征向量中各特征之间的相关性,并进行特征选择。 
主成分分析算法还可以用来进行高光谱图像数据的压缩和信息融合。例如:对LandsatTM的6个波段的多光谱图像(热红外波段除外)进行主成分分析,然后把得到的第1,2,3主分量图像进行彩色合成,可以获得信息量非常丰富的彩色图像。


图27 第一主成分


图28 第二主成分


图29 第三主成分


图30 第四主成分


图31第五主成分


图32 第六主成分

8.K-T变换 
即Kauth-Thomas变换,又称为“缨帽变换”。这种变换着眼点在于农作物生长过程而区别于其他植被覆盖,力争抓住地面景物在多光谱空间中的特征。 
目前对这个变换的研究主要集中在MSS与TM两种遥感数据的应用分析方面。


图33 第一主分量(亮度)


图34 第二主分量(绿度)


图35第三主分量

9.图像融合 
遥感图像信息融合是将多源遥感数据在统一的地理坐标系中,采用一定的算法生成一组新的信息或合成图像的过程。 
不同的遥感数据具有不同的空间分辨率、波谱分辨率和时相分辨率,如果能将它们各自的优势综合起来,可以弥补单一图像上信息的不足,这样不仅扩大了各自信息的应用范围,而且大大提高了遥感影像分析的精度。


图36 多光谱影像


图 37高分辨率影像


图38 融合影像(HSV融合)

四.图像裁剪
在日常遥感应用中,常常只对遥感影像中的一个特定的范围内的信息感兴趣,这就需要将遥感影像裁减成研究范围的大小。


图39 原始影像

1.按ROI裁剪 
根据ROI(感兴趣区域)范围大小对被裁减影像进行裁剪。


图40 按ROI(行政区)域裁剪

2.按文件裁剪 
按照指定影像文件的范围大小对被裁减影像进行裁剪。 
3.按地图裁剪 
根据地图的地理坐标或经纬度的范围对被裁减影像进行裁剪。


图41 按地图坐标范围裁剪

五.图像镶嵌和匀色
1.图像镶嵌 
也叫图像拼接,是将两幅或多幅数字影像(它们有可能是在不同的摄影条件下获取的)拼在一起,构成一幅整体图像的技术过程。 
通常是先对每幅图像进行几何校正,将它们规划到统一的坐标系中,然后对它们进行裁剪,去掉重叠的部分,再将裁剪后的多幅影像装配起来形成一幅大幅面的影像。


图42镶嵌左影像


图43 镶嵌右影像


图44 镶嵌结果影像

2.影像匀色 
在实际应用中,我们用来进行图像镶嵌的遥感影像,经常来源于不同传感器、不同时相的遥感数据,在做图象镶嵌时经常会出现色调不一致,这时就需要结合实际情况和整体协调性对参与镶嵌的影像进行匀色。


图45 匀色前影像


图46 匀色后影像

六.遥感信息提取 
遥感图像中目标地物的特征是地物电磁波的辐射差异在遥感影像上的反映。依据遥感图像上的地物特征,识别地物类型、性质、空间位置、形状、大小等属性的过程即为遥感信息提取。 
目前信息提取的方法有:目视判读法和计算机分类法。其中目视判读是最常用的方法。 
1.目视判读 
也叫人工解译,即用人工的方法判读遥感影像,对遥感影像上目标地物的范围进行手工勾绘,达到信息提取的目的。


图47 人工解译水系

2.图像分类 
是依据是地物的光谱特征,确定判别函数和相应的判别准则,将图像所有的像元按性质分为若干类别的过程。 
(1)监督分类 
在研究区域选有代表性的训练场地作为样本,通过选择特征参数(如亮度的均值、方差等),建立判别函数,对样本进行分类,依据样本的分类特征来识别样本像元的归属类别的方法。


图48 原图像


图49 监督分类图像

(2)非监督分类 
没有先验的样本类别,根据像元间的相似度大小进行归类,将相似度大的归为一类的方法。 
(3)其他分类方
包括神经网络分类、分形分类、模糊分类等分类方法,以及他数据挖掘方法如模式识别、人工智能等,在这里不做进一步阐述。

2019-03-11 16:38:29 qq_35594560 阅读数 1861

第一步:是否为彩色图片(假设:是)

第二步:转为灰度图像

第三步:通过灰度阀值寻找区域

第四步:通过特征点提取,提取固定区域

第五步:对提取的区域做处理,例如填充区域,膨胀,开操作等。

 

2018-06-14 22:11:00 chengyq116 阅读数 1615

GIMP - GNU 图像处理程序 - 中文版

1. Edit -> Preferences -> Interface


2. Chinese [zh_CN]


3. 重启 GIMP 即可。

 

 

 

 

 

2017-09-02 22:35:31 qq_39210023 阅读数 23820

FPGA图像处理之路,从此开始,接下来,让我们把时间交给“图像处理”。一休哥在动笔之前,一直在犹豫,反复思考着一个问题,这个问题一直困扰着我,“FPGA在图像处理领域中的地位?”
按照惯例,我们先暂且不直说这个问题的答案,让我们先谈谈图像处理技术。在一休哥我个人看来,图像处理就是对图像进行操作以得到自己想要的结果。图像处理,它是一个非常广义的概念,它包含图像增强,图像复原,图像重建,图像分析,模式识别,计算机视觉等N多个应用方向。这些应用技术有许多在本质上是相通的,但是不同应用领域的关注点往往是不同的。
当我们升入研究生阶段,或者进入公司,如果从事图像处理相关的工作,也就有了自己涉猎的领域了。在此,一休哥主动交代一下,一休哥现阶段主要关注的领域为图像重建。
好了,闲话不多说,我们来说说大实话。在我之见下的图像处理,作为一个“半职业”的FPGAer,用FPGA做图像处理相关的开发时,我们往往首先要考虑的就是FPGA处理板的性能了,因为做图像处理是一个十分消耗资源的事情。打开淘宝,我们可以搜索到很多图像处理FPGA开发板,有些开发板上的资源十分丰富,可以满足我们前期试验的需求。可是令人感到尴尬的是,用FPGA做图像处理也是一件十分困难的事。一休哥从网络上的开源情况来看,FPGA在图像处理方面的主要应用一直处于图像的预处理阶段。
什么叫图像的预处理?例如图像的畸变校正,滤波器处理,边缘检测、颜色检测和阈值处理等。这些预处理都有一些共同的特征,算法较为简单,操作重复性强等。但是,除了预处理,FPGA就不能做点别的吗?有的哦,图像处理类似一个三层金字塔,分为底层,中间层,高层。
这里写图片描述
图像处理金字塔有三层,分别针对的是像素级、特征级和目标级。一个成熟的图像处理应用应该同时涵盖这三层。
在像素层,我们可以对图像做一些变换,目的是增强图像的有用信息,同时抑制任何不相关的信息(如噪声)。然后通过对预处理后的图像做分割操作实现图像从像素级到特征级的过度,分割操作可以理解为检测图像中具有一些共同性质的区域。针对这些区域,依据一个或多个分类法则,将区域归类到一些预先设定的特征类型中作为后期识别的数据集。此时的数据已经不仅仅是图像了,其中包含了丰富的特征信息,如物体的位置信息等。在金字塔高层,依靠获取的特征,如有必要还可以将这些特征集作为学习的训练集来创建专用的模型,借助模型来实现识别,进而用来对实时采集的图像进行描述。
好了,刚才说了一大堆一休哥不擅长的大片理论的“教科书式”定义后,一休哥继续讲大实话。一言以蔽之,FPGA在图像处理中的应用尚处于未成熟状态,网络上可供借鉴的大多是预处理方面的资源,而关于使用FPGA去做特征和目标层次的处理还是十分复杂的,大多数高层次的应用还处于研发阶段,具体说吧,主要是高校和大公司会去做这方面的研究与应用,而且因为是研发阶段,所以使用的FPGA套件是十分昂贵的,不计成本。显然这种实现方式是不符合商用的。因此,当你真正用一个全新的“较低廉”的“高效”的硬件方式实现了一个效果十分出色的图像处理算法,那么你当真是非常了不起的了。
说了这么久,关于“FPGA在图像处理领域中的地位?”这个问题,想必各位心中已经有了属于你们自己的那份答案了。
不妨再来和一休哥的答案比较下。用FPGA做图像处理往往需要考虑除算法之外的更多问题,如时序约束,存储器带宽不足,资源不足,计算问题,这些问题都制约着FPGA在图像处理领域的发展。试想一下,本就复杂的图像处理算法,再加上这些有待解决的难题,这也就是我们经常遇到的困境。幸好,科技是在不断进步的,当现有的技术不能很好的解决当前的应用难题时,一定会新的技术诞生,专为处理这些问题而是的技术。这也就是,我们需要不断学习,不断充电的原因。
DDR2、DDR3、Zynq、PCIE、USB3.0、千兆网、LVDS、CORDIC,这些新技术的出现为我们提供了新的思路与解决方案,让FPGA拥有更大的潜能,FPGA将会在图像处理领域有更加卓越的表现。
在下期及以后的博文中,一休哥将主要介绍FPGA在图像处理中的应用实例。结合新的技术,通过具体应用实例的方式,讲述不一样但“绝对精彩”的图像处理故事,敬请期待!
这里写图片描述

图像处理入门教程

阅读数 32635