本文主要是介绍图像的灰度级差值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
灰度级差值是用来估计像素在图像像素间某一位置的取值的。
1)向前映射法
通过输入图像像素位置,计算输出图像对应像素的位置,将该位置像素的灰度值按某种方式分配到输出图像相邻四个像素。
2)向后映射法
通过输出图像像素的位置,计算属兔图像对应像素的位置,根据输入图像相邻四个像素的灰度值计算该位置像素的灰度值。
3)最近邻差值
向后映射时,输出图像的灰度等于离它所映射位置最近的输入图像的灰度值
4)双线性差值
四点确定一个平面函数
5)三次卷积法
如果在变换后的坐标附近能找到16个邻点则可采用此法。
下面是MATLAB 实现代码:
i=imread('lena.jpg');
I=rgb2gray(i);
subplot(231);
imshow(i);%原始图像
title('原始图像');
subplot(232);
imshow(I);%灰度图像
title('灰度图像');
I2=imresize(I,0.125);%缩小图像
Z1=interp2(double(I2),2,'nearest');%最邻近差值方法
Z1=uint8(Z1);
subplot(233);
imshow(Z1);
title('最邻近差值图像');
Z2=interp2(double(I2),2,'linear');%线性差值
Z2=uint8(Z2);
subplot(234);
imshow(Z2);
title('线性差值图像');
Z3=interp2(double(I2),2,'spline');%三次样条差值
Z3=uint8(Z3);
subplot(235);
imshow(Z3);
title('三次样条差值图像');
Z4=interp2(double(I2),2,'cubic');%立方差值
Z4=uint8(Z4);
subplot(236);
imshow(Z4);
title('立方差值图像');结果显示:
<img src="https://img-blog.csdn.net/20160903150937946?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
从上面的结果可以看出最近邻插值有明显的马赛克现象,线性插值就没有这么严重,三次样条和立方插值所得的结果较前两幅更加细腻
这篇关于图像的灰度级差值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!