|
ImageAnalyst <imageanalyst@mailinator.com> wrote in message <4f3654fc-52cc-4fb9-be2e-75d30903e2b6@x6g2000pbk.googlegroups.com>...
> On Feb 3, 2:43 pm, "Tomas Fridrich" <fridrichto...@gmail.com> wrote:
> > Well but I need to calculate standart deviation of 1 single image. And advice which give me you is about standart deviation of more images? Or not??
> ---------------------------------------------------------------
> Do you want this:?
>
> SD_of_one_image = std(oneImageArray(:));
>
> That's is the standard deviation over all pixels in that one single
> image.
Well this is it.
Thanks
Here is my program for measuring noise accorind to ISO 15739
but i need i little help with some details. For example. I don't know if is my gain estimate of camera is good. I calculated 1.54. Is it small/big?
Please help.
Thanks
clc;
clear all;
close all;
img_gain = rgb2gray(imread('IMAG0177.jpg'));
img_gain_grey(:,:) = img_gain(:,:,1);
imtool(img_gain_grey);
disp('Crop left test field A.');
[img_field_A coor_field_A] = imcrop(img_gain_grey, []);
disp('Crop middle test field B.');
[img_field_B coor_field_B] = imcrop(img_gain_grey, []);
disp('Crop middle test field C.');
[img_field_C coor_field_C] = imcrop(img_gain_grey, []);
A_mean_value = mean(mean(img_field_A)); %mean(img_field_A(:))
B_mean_value = mean(mean(img_field_B));
C_mean_value = mean(mean(img_field_C));
gain_estimate =((B_mean_value-A_mean_value)/(2*0.06*255))+((C_mean_value-B_mean_value)/(2*0.06*255));
img_1 = rgb2ycbcr(imread('IMAG0177.jpg'));
img_center_1(:,:) = double(imcrop(img_1(:,:,1), coor_field_B));
img_2 = rgb2ycbcr(imread('IMAG0178.jpg'));
img_center_2(:,:) = double(imcrop(img_2(:,:,1), coor_field_B));
img_3 = rgb2ycbcr(imread('IMAG0179.jpg'));
img_center_3(:,:) = double(imcrop(img_3(:,:,1), coor_field_B));
img_4 = rgb2ycbcr(imread('IMAG0180.jpg'));
img_center_4(:,:) = double(imcrop(img_4(:,:,1), coor_field_B));
img_5 = rgb2ycbcr(imread('IMAG0181.jpg'));
img_center_5(:,:) = double(imcrop(img_5(:,:,1), coor_field_B));
img_6 = rgb2ycbcr(imread('IMAG0182.jpg'));
img_center_6(:,:) = double(imcrop(img_6(:,:,1), coor_field_B));
img_7 = rgb2ycbcr(imread('IMAG0183.jpg'));
img_center_7(:,:) = double(imcrop(img_7(:,:,1), coor_field_B));
img_8 = rgb2ycbcr(imread('IMAG0184.jpg'));
img_center_8(:,:) = double(imcrop(img_8(:,:,1), coor_field_B));
clear img_1; img_2; img_3; img_4; img_5; img_6; img_7; img_8;
img_center_average(:,:)=double(img_center_1(:,:,1)+img_center_2(:,:,1)+img_center_3(:,:,1)+img_center_4(:,:,1)+img_center_5(:,:,1)+ img_center_6(:,:,1)+img_center_7(:,:,1)+img_center_8(:,:,1))/8;
sigma_ave=std(img_center_average(:));
prumer=uint8(img_center_average);
figure(4);show=imshow(prumer);
img_center_diff_1 =std(img_center_average(:)-img_center_1(:));
img_center_diff_2 =std(img_center_average(:)-img_center_2(:));
img_center_diff_3 =std(img_center_average(:)-img_center_3(:));
img_center_diff_4 =std(img_center_average(:)-img_center_4(:));
img_center_diff_5 =std(img_center_average(:)-img_center_5(:));
img_center_diff_6 =std(img_center_average(:)-img_center_6(:));
img_center_diff_7 =std(img_center_average(:)-img_center_7(:));
img_center_diff_8 =std(img_center_average(:)-img_center_8(:));
img_center_average_diff=std((img_center_average(:)-img_center_1(:)).^2+(img_center_average(:)-img_center_2(:)).^2+(img_center_average(:)-img_center_3(:)).^2+(img_center_average(:)-img_center_4(:)).^2+...
(img_center_average(:)-img_center_5(:)).^2+(img_center_average(:)-img_center_6(:)).^2+(img_center_average(:)-img_center_7(:)).^2+(img_center_average(:)-img_center_8(:)));
sigma_diff =((((img_center_diff_1).^2)+((img_center_diff_2).^2)+((img_center_diff_3).^2)+((img_center_diff_4).^2)+((img_center_diff_5).^2)+((img_center_diff_6).^2)+((img_center_diff_7).^2)+((img_center_diff_8).^2)).^1/2)./8;
sigma_temp =(8/7.*sigma_diff).^1/2;
sigma_fp = (img_center_average_diff.^2-(1/7.*sigma_diff)).^1/2;
sigma_total = (sigma_fp.^2 + sigma_temp.^2).^1/2;
SNR_temp = 0.18*(gain_estimate*255./sigma_temp);
SNR_fp =0.18*(gain_estimate*255./sigma_fp);
SNR_total = 0.18*(gain_estimate*255./sigma_total);
SNR_DB=20*log10(SNR_total);
|