使用MATLAB中的彩色图像的四元数加权平均滤波器

时间:2018-10-02 09:01:20

标签: matlab quaternions weighted-average

在这里我要输入彩色图像,然后提取rgb色彩空间并将这些rgb彩色像素划分为3×3子矩阵,然后我还想同时使用强度和色度差来计算像素距离。再一次,我想通过使用该距离来获得欧几里德距离作为权重。最后,我想通过使用上面找到的权重来获取四元数加权平均滤波器(QWAF)。要获得QWAF,这里是公式。 QWAF=summation(wi*qi)/summation(wi),其中i代表过滤窗口中的像素,i从1到9,wi是上面计算得出的,qi是颜色的四元数形式图片。这将应用于所有子矩阵的全彩色图像。最后,我想从QWAF获取新的处理图像并显示此新彩色图像。

I = imread('Im.png');
I=double(imresize(I,[277,277]));
d=3;
[x,y]=size(f);
m=floor(x/d);
n=floor(y/d);
m_rest=mod(x,d);
n_rest=mod(y,d);
%remove rows and columns that will not fit
new_f=f(1:(end-m_rest),1:(end-n_rest));
%create matrix with (m,n) pages
new_f=reshape(new_f,[d m d n]);
new_f=permute(new_f,[1 3 2 4]);
w1=1/(sqrt(sum(((new_f(:,:,1,:))-(new_f(:,:,5,:))) .^ 2)));% calculating euclidean distance
w2=1/(sqrt(sum(((new_f(:,:,2,:))-(new_f(:,:,5,:))) .^ 2)));
.
.
.
w90=1/(sqrt(sum(((new_f(:,:,90,:))-(new_f(:,:,86,:))) .^ 2)));
QWAF1=((new_f(:,:,1,:)).*(w1));%Quaternion calculation,Q(x,y)
QWAF2=((new_f(:,:,2,:)).*(w2));
.
.
.
QWAF9=((new_f(:,:,9,:)).*(w9));
Quat1_9=cat(9,...
QWAF1,QWAF2,QWAF3,QWAF4,QWAF5,QWAF6,QWAF7,QWAF8,QWAF9);
.
.
.
Quat_total=cat(10,QWAF1_9,QWAF10_18,QWAF19_27,QWAF28_36,QWAF37_45,QWAF46_54,QWAF55_63,QWAF64_72,QWAF73_81,QWAF82_90);

最后,当我想将Quat_total显示为完整图像时,它给我的图像不正确。有什么帮助吗?

0 个答案:

没有答案