2017-04-24 53 views
1

我有一個布爾映射,因此一個數組只與零和1。它具有512x512的尺寸,我需要將其大小調整爲256x256。調整一個布爾映射

如果我使用Matlab imresize,值將被重新縮放,我不會再有隻有0和1,但也有其他值,我不想要。

我該怎麼做?

感謝

+0

應該是什麼重新映射的陣列的每個原始映象中的相應的2×2窗口的2^4個的可能值的值? – beaker

回答

1
__ = imresize(___,method) specifies the interpolation method used. 

默認情況下,imresize採用雙三次插值。 如果我沒有誤「最近的」應該在這種情況下工作。 https://www.mathworks.com/help/images/ref/imresize.html#inputarg_method

+0

我也看到2個posibilities。一個是跳過每個第二個值,或將調整大小的映射的結果舍入到0/1,在某些情況下應該達到更準確的結果。 – 2017-04-24 10:06:09

2

一些可能的方法:

  • 丟棄偶數索引條目:

    map_resize = map(1:2:end, 1:2:end); 
    
  • 丟棄奇數索引條目:

    map_resize = map(2:2:end, 2:2:end); 
    
  • 對於每個2×2塊計算均值和t母雞輪01

    map = randi([0 1], 6, 6); % example input 
    sz = size(map); 
    map_resize = col2im(mean(im2col(map, [2 2], 'distinct'), 1), [1 1], sz/2) >= .5;