Как я могу обрабатывать каждый блок изображения в Matlab? [Дубликат]

Я столкнулся с этой проблемой, когда попытался установить библиотеку numpy на моем python 3.5. Решение заключается в установке VS2015. У меня был VS2008, 2012, 2013, ни один из которых не совместим с python 3.5. По-видимому, более новая версия python зависит от более новых версий VS.

Также убедитесь, что C ++ Common Tools установлены с Visual Studio.

5
задан Amro 29 June 2012 в 16:12
поделиться

2 ответа

Вот пример использования MAT2CELL. Он делит изображение на плит N-by-M и обрабатывает случай, когда размер изображения не равномерно делится на количество фрагментов.

%# 2D grayscale image
I = imread('coins.png');

%# desird number of horizontal/vertical tiles to divide the image into
numBlkH = 4;
numBlkW = 4;

%# compute size of each tile in pixels
[imgH,imgW,~] = size(I);
szBlkH = [repmat(fix(imgH/numBlkH),1,numBlkH-1) imgH-fix(imgH/numBlkH)*(numBlkH-1)];
szBlkW = [repmat(fix(imgW/numBlkW),1,numBlkW-1) imgW-fix(imgW/numBlkW)*(numBlkW-1)];

%# divide into tiles, and linearize using a row-major order
C = mat2cell(I, szBlkH, szBlkW)';
C = C(:);

%# display tiles i subplots
figure, imshow(I)
figure
for i=1:numBlkH*numBlkW
    subplot(numBlkH,numBlkW,i), imshow( C{i} )
end

Входное изображение и результирующие фрагменты:

input_image [/g0] tiles [/g1]

8
ответ дан Amro 20 August 2018 в 16:39
поделиться

Не будет ли mat2tiles вместе с cellfun и cell2mat делать больше или меньше того, что делает blockproc?

Вы можете написать обертку самостоятельно, чтобы она использовалась те же аргументы, что и blockproc, я не думаю, что это должно быть так сложно.

2
ответ дан Egon 20 August 2018 в 16:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: