图像分割基于matlab各向异性热扩散方程SAR图像分割含Matlab源码 1879期
Posted 海神之光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像分割基于matlab各向异性热扩散方程SAR图像分割含Matlab源码 1879期相关的知识,希望对你有一定的参考价值。
一、各向异性热扩散方程简介(具体理论见参考文献)
1 前言
图像分割是 图像解译的一个关键步骥。 图像分割属于图像解译的早期处理 , 目的是为更高水平的后续处理提供输人。 因此图像分割的好坏对后续 解译性能有较大的影响。 相对于光学图像而言,图像的最大特点在于相干斑噪声的影响,它的存在使得图像表现为低信噪比,因此许多标准的图像分割算法应用于图像很难得到满意的效果。 到目前为止,针对图像的特点,人们提出了许多图像分割算法上。这些方法可以归纳为两种分割思 路首先对原始图像滤波,以降低斑点噪声的影响 ,然后采用与处理光学图像相似的方法进行分割,结合图像中象素的强度信息 以及结构信息,研究在分割的过程中抑制斑点噪声影响的分割算法。 相对于第二种思路,第一种思路带来的不利因素有对视数较大的图像分割可 以取得较好的效果,但在噪声较强的情况下,为了达到好的去斑效果,会增大滤波的程度, 使得分割效果下降。 而且降斑的客观全面评价标准不易确定 ,对分割产生的作用难以评估 因此很难给出一个确定性的结论, 即到底对于不同质量的图像, 降斑到什么程度才能取得好的分割效果引人了计算复杂度 ,性能好的降斑算法时间可能很长,使得分割的速度很慢。 因此 , 近年来关于图像分割的研究主要集中在第二种思路上,有代表性的方法如基于随机场的分割方法。 这 类方法分割精度很高,但其缺点在于分割的速度较慢,算法有可能陷人局部优化。 同时值得注意的是文献中利用非线性热扩散方程进行图像的分割 ,该方法证明了非线性热扩散方程对于乘性噪声的抑制作用,但该方法需要已知图像的先验分布参数 ,本质上是一种有监督的分割方法 , 因而无法应用于实际的跟系统。 本文采用第二种研究思路,提出了一种 图像快速分割方法。该方法首先利用像素的强度信息,结合实际图像的统计分布,给出准则下最优分割,然后把 该分割结果作为初始分割,采用各向异性热扩散方程对每类后验概率矩阵进行多尺度平滑 ,以滤除斑点噪声的影响
二、部分源代码
function Flag = RSRADFilter(P_Class,p);
SIZE = size(P_Class);
SIZEX = SIZE(1,1);
SIZEY = SIZE(1,2);
landa = 8.8;rou = 2;
n = 12;q0 = 0.33333;%n = 20
P_Class0 = P_Class;
%初始化数组
I_gradR = zeros(SIZEX,SIZEY,2);I_gradL = zeros(SIZEX,SIZEY,2);
P_Class2 = zeros(SIZEX+2,SIZEY+2);
Cr2 = zeros(SIZEX+2,SIZEY+2);
% for i = 1:SIZEX
% for j = 1:SIZEY
% if P_Class(i,j) == 0;
% P_Class(i,j) = 1;
% end
% end
% end
%求图像I的R方向和L方向上的梯度
for time = 1:n
str = '已经完成';
str = strcat(str,num2str(time/n*100.0),'%');
disp(str);
q0_t(time) = q0*exp(-1*rou*time*0.05);
% Delta_T = 5^0.5*q0_t(time)^2;
%设定图像边界条件
P_Class2(2:SIZEX+1,2:SIZEY+1) = P_Class;
P_Class2(2:SIZEX+1,1) = P_Class(:,1);P_Class2(1,2:SIZEY+1) = P_Class(1,:);
P_Class2(2:SIZEX+1,SIZEY+2) = P_Class(:,SIZEY);P_Class2(SIZEX+2,2:SIZEY+1) = P_Class(SIZEX,:);
for i = 1:SIZEX
for j = 1:SIZEY
I_gradR(i,j,:) = [P_Class2(i+1+1,j+1)-P_Class2(i+1,j+1),P_Class2(i+1,j+1+1)-P_Class2(i+1,j+1)];
I_gradL(i,j,:) = [P_Class2(i+1,j+1)-P_Class2(i+1-1,j+1),P_Class2(i+1,j+1)-P_Class2(i+1,j-1+1)];
module_grad = I_gradR(i,j,1)^2+I_gradR(i,j,2)^2+I_gradL(i,j,1)^2+I_gradL(i,j,2)^2;
%计算Laplacian算子
I_Laplace(i,j) = P_Class2(i+1+1,j+1)+P_Class2(i+1,j+1+1)+P_Class2(i-1+1,j+1)+P_Class2(i+1,j-1+1)-4*P_Class2(i+1,j+1);
%计算扩散系数
q(i,j) = ((1/4*module_grad/(P_Class2(i+1,j+1)+0.0001)^2-1/16*(I_Laplace(i,j)/(P_Class2(i+1,j+1)+0.0001))^2)/...
(1+1/4*I_Laplace(i,j)/(P_Class2(i+1,j+1)+0.0001)+0.0001)^2)^0.5;
Cr(i,j) = p*1/(2*(1+(q(i,j)-q0_t(time))^2)^0.5);%2.53
% Cr(i,j) = 0.36*exp(log2(1+(q(i,j)-q0_t(time))^2))/((1+(q(i,j)-q0_t(time))^2)*0.3010);
% Cr(i,j) = 2.36*1/((2*3.14)^0.5*0.7)*exp(-1*(q(i,j)-q0_t(time)).^2/(2*0.7^2));% 1.88
% Cr(i,j) = 1.8*1/((2*3.14)^0.66*0.4)*exp(-1*10*(q(i,j)-q0_t(time)).^2/(2*0.66^2));
% Cr(i,j) = 2*1/((2*3.14)^1.66*0.4)*exp(-1*(q(i,j)-q0_t(time)).^2/(2*1.66^2));
end
end
%设定Cr的边界条件
Cr2(2:SIZEX+1,2:SIZEY+1) = Cr;
Cr2(2:SIZEX+1,1) = Cr(:,1);Cr2(1,2:SIZEY+1) = Cr(1,:);
Cr2(2:SIZEX+1,SIZEY+2) = Cr(:,SIZEY);Cr2(SIZEX+2,2:SIZEY+1) = Cr(SIZEX,:);
%计算散度
for i = 1:SIZEX
for j = 1:SIZEY
DIV(i,j) = Cr2(i+1+1,j+1)*(P_Class2(i+1+1,j+1)-P_Class2(i+1,j+1))+Cr2(i+1,j+1)*(P_Class2(i-1+1,j+1)-...
P_Class2(i+1,j+1))+Cr2(i+1,j+1+1)*(P_Class2(i+1,j+1+1)-P_Class2(i+1,j+1))+Cr2(i+1,j+1)*(P_Class2(i+1,j-1+1)-P_Class2(i+1,j+1));
% end
% end
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]高贵,计科峰,匡纲要,李德仁.基于各向异性热扩散方程的SAR图像分割方法[J].信号处理. 2006,(01)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
以上是关于图像分割基于matlab各向异性热扩散方程SAR图像分割含Matlab源码 1879期的主要内容,如果未能解决你的问题,请参考以下文章
数字图像处理,基于PM和Catte模型各向异性扩散的C++实现
图像去噪基于matlab PM模型图像降噪含Matlab源码 2107期
图像去噪基于matlab PM模型图像降噪含Matlab源码 2107期
图像去噪基于matlab非线性扩散PM算法图像去噪含Matlab源码 2130期