【问题标题】:How to interpolate across a missing pixel of image in MATLAB?如何在 MATLAB 中插入缺失的图像像素?
【发布时间】:2013-11-18 17:50:15
【问题描述】:

当我有一位负责这个项目的主管时,我很迷茫,但他出人意料地离开了,现在我离开时没有任何支持,也没有真正了解我想要做什么的人,我可以提出问题,所以这些可能看起来很琐碎:

我从 512x512 的图像开始,然后将样本缩减为 64x64 像素的图像。我在下面我想要实现的主要目标下完成的代码是针对丢失像素的 64x64 位图像,我想使用 conv2(或其他方法)找到丢失像素周围的最小强度差异,并具有这个最小差异知道插值的方向。我将如何措辞编码 for for 循环来做到这一点?

谢谢!

function FYPDCT_Image()

lena=imread('lena.bmp');
size(lena)
[m n p]=size(lena)
a=rgb2gray(lena);
imshow(a);
title('Original Grayscale Image');

lena_c=zeros(m,n,p);

lenad=a;

for i=1:16:512
    for j=1:16:512
        lenad(i:i+7,j:j+7)=0;
    end
end

%% DCT

subplot(2,2,1);
imshow(lenad)
[m n] = size(lenad)
title([num2str(m) ' X ' num2str(n)]);

subplot(2,2,2);
lenad_ds1=DS_DCT(lenad,8);
imshow(uint8(lenad_ds1));    
[m n] = size(lenad_ds1)
title([num2str(m) ' X ' num2str(n)]);

subplot(2,2,3);
lenad_ds2=DS_DCT(lenad_ds1,4);

imshow(uint8(255*lenad_ds2/max(max(lenad_ds2))));      
[m n] = size(lenad_ds2)
title([num2str(m) ' X ' num2str(n)]);

subplot(2,2,4);
lenad_ds3=DS_DCT(lenad_ds2,2);

imshow(uint8(255*lenad_ds3/max(max(lenad_ds3)))); 
[m n] = size(lenad_ds3)
title([num2str(m) ' X ' num2str(n)]);

kernel = [-1 -1 -1;-1 8 -1; -1 -1 -1]/8;

differenceImage = conv2(double(lenad_ds3), kernel, 'same');

differenceImage

%% Downsample by a factor of square(2) using DCT
function ImageOut=DS_DCT(ImageIn,MBsize)

[m n]=size(ImageIn);
k=1;
for i=1:MBsize:m-MBsize+1
    l=1;
    for j=1:MBsize:m-MBsize+1
        temp=ImageIn(i:i+MBsize-1,j:j+MBsize-1);
        tempDCT=dct2(temp);
        temp=idct2(tempDCT(1:MBsize/2,1:MBsize/2));
        ImageOut(k:k+MBsize/2-1,l:l+MBsize/2-1)=temp;
        l=l+MBsize/2;
    end
    k=k+MBsize/2;
end

【问题讨论】:

标签: image matlab pixel interpolation


【解决方案1】:

您可以通过按窗口大小 3*3 平均相邻像素来初始化像素。然后像往常一样插入图像。

IMAGE1=load('img.jpg');
image_interpol = imresize(IMAGE1, 0.125, 'bicubic');

imresize 返回 image_interpol,它是 IMAGE1 大小的 0.125 倍。 'bicubic' 是插值类型。

【讨论】:

  • 如何初始化一个 3x3 的像素窗口?如何收集缺失像素周围的数据,以便将此信息放入 3x3 窗口然后进行插值?
  • 您应该平均丢失像素周围的 8 个相邻像素,并通过计算的平均值初始化丢失像素。
猜你喜欢
  • 2019-09-24
  • 2019-05-20
  • 2014-03-27
  • 1970-01-01
  • 2011-10-19
  • 1970-01-01
  • 2011-12-08
  • 1970-01-01
  • 2012-07-06
相关资源
最近更新 更多