Dies ist mein Code für das Schneiden meines 512 * 512 Bildes in einen Würfel von 64 * 64 * 64 Dimension. aber wenn ich es wieder in ein 2D-Array umforme, warum gibt es mir nicht das ursprüngliche Bild.am mache ich etwas falsch bitte helfen.Bild Shuffling und Slicing
clc;
Image=imread('C:\Users\Farhan\Documents\lena_gray.gif');
[y,ymap]=imread('C:\Users\Farhan\Documents\lena_gray.gif');
im=ind2gray(y,ymap);
% im=imresize(im,0.125);
[rows ,columns, colbands] = size(im)
blockSize = 64;
image3d = zeros(64, 64, 64);
sliceNumber = 1;
for row = 1 : 64 : 512
for col = 1 : 64 : 512
row1 = row;
row2 = row1 + blockSize - 1;
col1 = col;
col2 = col1 + blockSize - 1;
oneBlock=im(row1:row2,col1:col2);
subplot(64, 64, sliceNumber);
imshow(oneBlock);
image3d(:, :, sliceNumber) = oneBlock;
sliceNumber = sliceNumber + 1;
end
end
image3d=reshape(image3d,512,512);
figure,imshow(uint8(image3d));
Es ist wichtig zu bestellen Sie die Scheiben kisten. Versuchen Sie, Zeilen- und Spaltenschleifen zu ändern. Zuerst für col und dann für row. –
Durch einfaches Umschalten von Zeilen und Spalten wird der Code jedoch nicht repariert. – julian59189
Ihre Formatierung der Matrix für Slicing ist nicht, was Umformung später erwarten wird, da MATLAB Funktion Umformen erwarten, dass Sie Column weise durchlaufen haben, aber Sie Ihren Würfel mit der Hälfte der columnwwn und Hälfte der Reihe weise Operation formulieren. Wenn Sie sich schließlich umformen, wird es falsch umgeformt – Zeeshan