【遥感图像预处理方法】


前言

无人机具有体积小、时效性强、操作灵活、成本低等优点,其航拍遥感技术被广泛应用于灾害监测、环境侦察等方面。遥感图像预处理作为无人机图像拼接的第一环节,其处理效果会直接影响到后续拼接的速度、配准准确度以及图像拼接质量。
受限于无人机的飞行高度低、体积小、重量轻导致的抗风能力差、数码摄像头焦距不足等因素的限制,无人机遥感技术所拍摄的图像往往像幅小、数据量大;无人机遥感图像还会受到诸多环境变量的影响,如光照、烟雾等,这也导致了即使是相邻多幅图像之间,也会存在较大的亮度差异和色调差异,这些也会影响到特征点检测的准确度以及最后图像融合的质量,因此在预处理阶段中引入图像增强十分必要。在任何图像采集过程中,噪声干扰都是需要考虑的因素,本文所提出的基于图像锐化的平滑处理能够有效地去除噪声并增强图像细节为下一步特征配准打下良好的基础。

一、匀光处理

直方图均衡化又称为灰度均衡化,是指通过某种灰度映射使本来灰度分布不均匀的图像转换为灰度分布均匀的图像(即图像的直方图是均匀的),也就是在每一个灰度级上都有大致相同的像素点数。在经过直方图均衡化处理后的图像中,像素将在尽可能多的灰度级上分布并且分布是均匀的。因此,这样的图像会有很大的灰度范围和很高的对比度。算法的原理如下:有一幅数字图像,它的灰度级为 ,它的直方图是一个离散函数 , 是第 级的灰度。 是灰度级为 的像素的数量,用像素的总数 除以每个灰度级的像素数量,能够得出归一化的直方图。公式如下:
(2.1)
式中: 就是灰度级 发生的概率估计值。且
(2.2)
将数字图像的像素值离散化,并进行变换:
(2.3)

上述变换就称为直方图均衡化,它是常用的图像增强技术,一般情况下可以得到满意的图像效果。且直方图均衡化算法简单,因此适用于有实时性要求的遥感图像的预处理。
本文采用基于直方图均衡的遥感图像增强技术。对于光照变化引起的图
像细节的模糊,可以使用直方图均衡化来解决,试验表明该操作可以对图像质量有明显的提升。直方图均衡化方法可以按下面的步骤进行:
(1)输入图像;(2)统计各个像素点的颜色值分散情况;(3)依据式子2-4计算并得出新的灰度值分布情况;
在这里插入图片描述

RGB = imread('D:\迅雷下载\RSOD-Dataset\samples_0.jpg'); % 读取彩色图
subplot(131);
imshow(RGB);
title('彩色图');

I=rgb2gray(RGB); % 将彩色图转化为灰度图
subplot(132);
imshow(I);
title('灰度图');

[R, C] = size(I);

% 统计每个像素值出现次数
cnt = zeros(1, 256);
for i = 1 : R
    for j = 1 : C
        cnt(1, I(i, j) + 1) = cnt(1, I(i, j) + 1) + 1;
    end
end

f = zeros(1, 256);
f = double(f); cnt = double(cnt);

% 统计每个像素值出现的概率, 得到概率直方图
for i = 1 : 256
    f(1, i) = cnt(1, i) / (R * C);
end

% 求累计概率,得到累计直方图
for i = 2 : 256
    f(1, i) = f(1, i - 1) + f(1, i);
end

% 用f数组实现像素值[0, 255]的映射。 
for i = 1 : 256
    f(1, i) = f(1, i) * 255;
end

% 完成每个像素点的映射
I = double(I);
for i = 1 : R
    for j = 1 : C
        I(i, j) = f(1, I(i, j) + 1);
    end
end

% 输出
I = uint8(I);
subplot(133);
imshow(I);
title('直方图均衡化');

从上图2-1中不难看出,直方图均衡化操作可以有效地提升图像的对比度,图像的细节信息也变得更为清晰。由于直方图均衡操作计算简便,所以处理速度较快,而且对图像的增强作用也非常优秀,所以本文采用直方图均衡化完成图像的增强。

二、图像复原技术

图像复原是图像处理重要的研究领域。由于图像获取器材自身的一些原因,导致获得的图像不是真实景物的完善影响。图像在形成、传播和保存过程中使图像质量下降的过程,称为图像退化。图像复原就是重建退化的图像,使其最大限度恢复景物原貌的处理。
图像复原的概念与图像增强类似。但图像增强可以针对本来完善的图像,经过某一处理,使其适合于某种特定的应用,是一个主观的过程。图像复原同样是为了提升图像的品质,但图像复原更偏向于在己经知道图像退化的原因后,根据相关知识使其尽可能地还原为完善的图像,更多的是一个客观过程。图像复原与图像增强都是要得到在某种意义上改进的图像,或者说,希望改进输入图像的质量。两者的不同之处是图像增强技术一般要借助人的视觉系统的特性,以取得较好的视觉效果,而视觉效果质量的评价标准是主观的。而图像复原则认为图像在某种情况下退化或恶化了,使得图像品质出现下降,现在需要根据相应的退化模型和知识重建或恢复原始的图像。因此,图像复原的目标是原始的反应真实物体或场景的图像,这是客观存在的,不以主观意志为转移。图像复原通过概率估计或先验知识千方百计地去还原图像的本来面貌。
图像复原一般可采用两种方法:第一种方法是在不知道是哪些退化因素引起的图像质量低的情况下,针对图像的复原,那么可以对退化过程建立模型分析,然后找出可以减弱或消除这个影响因素的办法。另一种方法是己经知道图像质量之所以下降的原因也就是退化因素,那么可以根据这个因素对图像的退化影响进行适当拟合。
图像的退化往往伴随着噪声。另外,在部分场景下唯一的退化就是噪声。噪声一般都是在图像的获得和传递过程中产生的:(1)拍摄器材获取到的图像会受到各种环境因素以及器材本身的一些影响,比如,当采用摄像机拍摄图像时,光照的强弱变化以及感光器件自身的热度变化均有可能使获取到的图像产生大量的噪声。(2)图像在传输过程中,它所占用的传输信道一旦受到干扰,那么也会使得获取到的图像产生噪声,例如,一副图像如果通过无线网络传输,一旦网络受到各种因素干扰,那么传输过来的这幅图像的品质就很有可能降低。
图像复原技术包括很多内容,本文是利用去除噪声完成图像复原,人们一般都用图像滤波技术来消除噪声。图像滤波就是尽可能的消除或减弱图像中的噪声同时尽可能的保留图像的细节特征,是不可或缺的一门图像预处理技术,图像滤波的结果会对之后的图像处理和分析产生直接的影响。要构造一种可以很好消除噪声的滤波器必须考虑以下两个关键问题:一是能否有效去除图像包括前景和背景中的噪声,二是能否很好地保护目标图像的形状大小及特定的几何和拓扑结构特征。
传统的线性滤波技术常基于对傅里叶变换的分析,在削除噪声时,也会以某种方式使图像细节发生模糊进而降低图像特征的定位准确度和特征的可抽取性。而非线性滤波一般直接对邻域进行操作。它其实就是对输入对象的非线性映射,它能够把某种噪声大致地处理为零同时还可以把输入对象的关键特征留下,因此非线性滤波器可以在一定程度上解决线性滤波器所带来的不必要的麻烦。以下是用中值滤波去除噪声

2.自适应中值滤波

自适应中值滤波器在中值滤波基础上进行了改进,可以去除强度较高的椒盐噪声,也对其他噪声(如高斯噪声)有一定的抑制效果,同时保护了图像的细节边缘。自适应中值滤波的算法如下。
在这里插入图片描述
在这里插入图片描述
从图中可以看出,针对交通标志的图像来说,自适应中值滤波对噪声的去除效果是最好的,基本可以去除全部噪声点。因此使用自适应中值滤波来实现遥感图像复原去噪是合适的。

gray=imread('D:\迅雷下载\RSOD-Dataset\samples_0.jpg');
gray1=rgb2gray(gray);	%灰度化
%% 加入噪声
gray_noise=imnoise(gray1,'salt & pepper',0.5);
%% 中值滤波
M1 = medfilt2(gray_noise,[3,3]);
%% 自适应中值滤波
f1 = adaptive_median_filter(gray_noise,11);
%%
figure("color",[1,1,1]);
subplot(221)
imshow(gray1)
subplot(222)
imshow(gray_noise)
title("gray with noise")
subplot(223)
imshow(M1)
title("中值滤波")
subplot(224)
imshow(f1)
title("自适应中值滤波")

课设论文下载地址:完整论文

总结

以上就是今天要讲的内容,本文仅仅简单介绍主要研究了航拍图像预处理中遇到的图像噪声大、光照差异大、视野中景物存在畸变、图像不清晰等问题。然后采用直方图配准法对原始图像进行了匀光处理

  • 2
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
遥感图像预处理是指在分析遥感图像之前,对图像进行一系列的操作和处理,以提取有用的信息和特征。Python提供了许多工具和库,可以用于遥感图像预处理,其中常用的是gdal、numpy和shapefile等库。下面是一些常见的遥感图像预处理步骤和相应的Python代码: 1. 读取遥感图像:使用gdal库中的gdal_array.LoadFile()函数读取图像数据,并将其转换为numpy数组。 ```python from osgeo import gdal, gdal_array import numpy as np img = "./image.tif" arr = gdal_array.LoadFile(img) ``` 2. 图像裁剪:根据需要,可以使用numpy数组的切片操作对图像进行裁剪。 ```python cropped_arr = arr[50:200, 100:300] ``` 3. 图像缩放:使用gdal库中的gdal_array.SaveArray()函数将裁剪后的图像保存为新的图像文件。 ```python output = gdal_array.SaveArray(cropped_arr, "cropped_image.tif", format="GTiff", prototype=img) output = None ``` 4. 图像增强:可以使用numpy库中的函数对图像进行增强操作,例如调整亮度、对比度、色彩平衡等。 ```python enhanced_arr = adjust_brightness(arr, 1.2) ``` 5. 图像滤波:使用numpy库中的卷积操作对图像进行滤波,以去除噪声或增强图像特征。 ```python filtered_arr = apply_filter(arr, kernel) ``` 6. 图像分类:根据需要,使用numpy库中的函数将图像分为不同的类别,并进行着色。 ```python classified_arr = classify_image(arr, classes) colorized_arr = colorize_image(classified_arr, lut) ``` 以上只是一些常见的遥感图像预处理步骤和相应的Python代码,实际应用中可能需要根据具体需求进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可可2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值