How to make a vector of multiple images in double form by using function?
조회 수: 2 (최근 30일)
이전 댓글 표시
clc;
clear all;
close all;
for i=1:10
c{i}=imread(sprintf('s%d.jpg',i));
w = rgb2gray(c{i});
im = imresize(w,0.25);
mi = double(im);
q= im2vec(mi);
J = imnoise(mi,'salt & pepper')
figure,
imshow(mi)
medianFilteredImage = medfilt2(mi, [50 50]);
figure,
%imshow(medianFilteredImage)
% Find the noise. It will have a gray level of either 0 or 255.
noiseImage = (mi == 0 | mi == 255);
% Get rid of the noise by replacing with median.
noiseFreeImage = noiseImage; % Initialize
noiseFreeImage(noiseImage) = medianFilteredImage(noiseImage); % Replace.
imshow(noiseFreeImage);
end
%Function
function mi=im2vec(im)
[N M]=size(im);
% for i=1:N
% for j=1:N
% mi((i-1)*N+j)=im(i, j);
% end
% end
for i=1:N
mi(1, (i-1)*M+1:M+(i-1)*M)=im(i,:);
end
- Use rgb2gray command.
- Resize to size 50x50 (using imresizecommand).
- Make a vector (function is provided, also make it in double form).
- Add salt and pepper noise.
- Display noisy images.
- Remove the noise using a suitable filter.
- Display the noise free images.
댓글 수: 3
Jan
2018년 11월 26일
So is all you want to convert:
mi = double(im);
to
mi = double(im(:));
? What exactly is your quiestion? Attaching the images does not clear this detail.
답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!