2017-04-24 1 views
1

부울 맵을 가지고 있으므로 배열은 0과 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 가지 가능성이 있습니다. 하나는 두 번째 값을 건너 뛰거나 크기 조정 된지도의 결과를 0/1로 반올림하는 것이고, 어떤 경우에는 더 정확한 결과를 얻을 수 있어야합니다. –

2

몇 가지 가능한 접근 방법 :

  • 폐기 짝수 항목 :

    map_resize = map(1:2:end, 1:2:end); 
    
  • 폐기 홀수 인덱스 항목 : 각 2 × 2의

    map_resize = map(2:2:end, 2:2:end); 
    
  • 블록은 평균과 t를 계산한다. 0 또는 1 편에 라운드 :

    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;