HOW TO IDENTIFY MEAN AND STANDARD DEVIATION FOR THIS CODE?

1 vue (au cours des 30 derniers jours)
tashu Dabariya
tashu Dabariya le 17 Juin 2019
Modifié(e) : Adam Danz le 17 Juin 2019
Read image by its file name
I = imread('.');
I=imresize(I,[256 256]);
I=im2double(I);
imshow(I)
% Convert RGB to HSV
img1=rgb2hsv(I);
figure(), subplot(2, 2, 1), imshow(I), title('Original')
subplot(2, 2, 2), imshow(img1(:,:,1)), title('Hue'), colorbar
subplot(2, 2, 3), imshow(img1(:,:,2)), title('Saturation'), colorbar
subplot(2, 2, 4), imshow(img1(:,:,3)), title('Value of Brightness'), colorbar
H=img1(:,:,1).*255;
S=img1(:,:,2).*255;
V=img1(:,:,3).*255;
% H(:,:,1) = H(:,:,1) * 2.5;
% min. and max value of hsv
Hmin = min(H(:));
Smin = min(S(:));
Vmin = min(V(:));
Hmax = max(H(:));
Smax = max(S(:));
Vmax = max(V(:));
%Set the hue value to zero if it
%less than 50 or great than 150
H((H < 50) | (H > 150)) = 0;
%Set the hue value of wheat straw
% pixel to zero
H(H > 49 & H < 60 & S > 5 & S < 50 & V > 150) = 0;
%Thresholding
T = 49; %T can be any value in [1, 49]
t = T./255;
BW = im2bw(H, t);
%Delete the objects less than 100 pixels
BW = bwareaopen(BW, 100);
%Show the identification result
figure, imshow(BW);
% Calculate the area, in pixels, of binary image.
numberOfPixels1 = sum(BW(:));
% Another way to calculate it that takes fractional pixels into account.
numberOfPixels2 = bwarea(BW);
% CALCULATE PARAMETERS
I =rgb2gray(I);
I=double(I);
BW =(BW);
% % % Find the mean squared error
mse = sum((I(:)-BW(:)).^2) / numel(I);
%
% % % now find the psnr, as peak=255
psnr = 10*log10(255*255/mse);
  3 commentaires
tashu Dabariya
tashu Dabariya le 17 Juin 2019
I and BW
tashu Dabariya
tashu Dabariya le 17 Juin 2019
% CALCULATE PARAMETERS
I =rgb2gray(I);
I=double(I);
BW =(BW);
% % % Find the mean squared error
mse = sum((I(:)-BW(:)).^2) / numel(I);
%
% % % now find the psnr, as peak=255
psnr = 10*log10(255*255/mse)
is it right way to calculatet psnr and mse?
for mean and std variable might be I and BW

Connectez-vous pour commenter.

Réponse acceptée

Adam Danz
Adam Danz le 17 Juin 2019
Modifié(e) : Adam Danz le 17 Juin 2019
It looks like you want to calculate the mean squared error between the I and BW arrays which can be done using immse() from the image processing toolbox.
err = immse(I,double(BW));
  3 commentaires
Adam Danz
Adam Danz le 17 Juin 2019
I saw in your code, you converted I to double: I=double(I); In my answer, I also converted BW to double which would avoid that error.
Adam Danz
Adam Danz le 17 Juin 2019
Modifié(e) : Adam Danz le 17 Juin 2019
tashu, this is a different question than what you started with and I suggest writing a new question with a more focused title so it attracts experts in this area.
Also, providing code is a big help but please format it by using the format buttons while your editing the question. I've formatted your code so far but it saves us some time if you do it yourself. Thanks.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by