Как я могу увеличить изображение в Matlab, не используя функцию Matlab Imresize - PullRequest
0 голосов
/ 05 марта 2019

введите описание изображения здесь Я не получаю правильных результатов, пожалуйста, поделитесь кодом

enter code here
a=imread('rice.png')
[rows,columns]=size(a);
i=1; j=1;
c=zeros(rows*4,columns);
for x=1:2;rows
for y=1:2:columns
c(i,j)=a(x,y);
j=j+1;
end
i=i+1;
j=1;
end
figure,imshow(a);
figure,imshow(c/255);
figure,imagesc(c),colormap(gray);

Я использую этот код, но он не дает правильных результатов

1 Ответ

0 голосов
/ 06 марта 2019

Вы должны проверить тип исходного изображения и создать изображение того же типа.Следующий код поможет вам понять логику расширения изображения.Допустим, значение пикселя (1,1) вашего изображения равно 128, здесь мы записываем это значение в (1,1), (1,2), (2,1), (2,2) пикселей.

clear;clc;close all;
A=imread('rice.png'); % read the image
[rows, columns]=size(A); % get size of the image
m=2;      % Expanding ratio (you can change that value to whatever you want)
newA=zeros(rows*2, columns*2,'uint8'); %new created image should be in same
for i=1:columns                        %type with original image.
    for j=1:rows                       
        newA(i*m,j*m)=A(i,j);          % Writing pixel values on (2,2),(2,4),(4,2),(4,4),...
        newA((i*m)-1,(j*m)-1)=A(i,j);  % Writing pixel values on (1,1),(1,3),(3,1),(3,3),...
        newA((i*m),(j*m)-1)=A(i,j);    % Writing pixel values on (2,1),(2,3),(4,1),(4,3),...
        newA((i*m)-1,(j*m))=A(i,j);    % Writing pixel values on (1,2),(1,4),(3,2),(3,4),...
    end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...