원본 이미지와 암호화 된 이미지 사이의 피크 신호 대 잡음비 (PSNR)와 혼동합니다. 아시다시피, 높은 PSNR 값은 더 나은 이미지 품질을 의미합니다. PSNR 값을 테스트하고 계산하려고했습니다. 나는 텍스트 스테 가노 그라피에 LSB 기법을 사용했다.matlab에있는 이미지의 PSNR
- 나는 100자를 이미지에 포함 시키려고 시도했다. 결과는 69.9696 dB입니다.
- 나는 5자를 이미지에 삽입하려고 시도했다. 결과는 68dB입니다.
지금, 내 마음에 내가 생각입니다
, 이미지에 삽입 적은 PSNR 값 이하의 캐릭터를 생성더 캐릭터가 이미지에 포함 할 경우, 높은 PSNR 값을 생성?
더 많은 문자가 포함되면 픽셀에 대한 더 많은 조작을 의미합니다. 따라서 PSNR 값은 더 낮아 집니까?
누구나 내 실수로 나를 알 수 있습니까?
은 첨부 코딩 ------ ------
Str = 'after this, I tried calculate the PSNR value with original image and stego image. 100 character which is read from file is embedded into image, higher PSNR value. 5 character, less PSNR value.';%many character
%Str = 'a'; %one character
Str=uint8(Str); %converting to 8 bit numbers for proper calculation
fprintf('%d ', Str);
fprintf('\n');
stringLength = length(Str);
x=imread('lena.bmp'); %reading the image file
x=uint8(x); %conversion to 8 bit
[x_row,x_col]=size(x);
numPixelsInImage = numel(x);
bitsPerLetter = 7; % For ASCII, this is 7.
numPixelsNeededForString = stringLength * bitsPerLetter;
binaryAsciiString = dec2bin(Str)'
whos binaryAsciiString
binaryAsciiString = binaryAsciiString(:)'
stegoImage = x;
stegoImage(1:numPixelsInImage) = bitset(stegoImage(1:numPixelsInImage), 1, 0);
oneIndexes = find(binaryAsciiString == '1');
stegoImage(oneIndexes) = bitset(stegoImage(oneIndexes), 1, 1);
imwrite(uint8(stegoImage),'stego123.bmp')
fprintf('\nPSNR: %9.7f dB\n\n', psnr(x,stegoImage));
이 후, 원래의 이미지와 stego 화상과 PSNR 값을 계산하려고. 파일에서 읽은 100 문자가 이미지에 삽입되어 더 높은 PSNR 값을 갖습니다. PSNR 값이 5 자 미만입니다.
그래서 나는 혼란스러워합니다.
은 --- 여기
function [PSNR,mse]=psnr(X,Y)
% function [PSNR,mse]=psnr(X,Y)
% Peak signal to noise ratio of the difference between images and the
%mean square error
% If the second input Y is missing then the PSNR and MSE of X itself
% becomes the output (as if Y=0).
if nargin<2, D=X;
else
if any(size(X)~=size(Y)), error('The input size is not equal to each other!'); end
D=X-Y;
end
mse=sum(D(:).*D(:))/prod(size(X));
PSNR=10*log10(255^2/mse);
난 그냥 PSNR의 함수를 호출하고 원래의 이미지와 stego 이미지의 PSNR 값을 인쇄 --- 내 PSNR 코드입니다.
내가 포함 많은 캐릭터, 나는 51.1687256 dB를 얻을. 내가 삽입 한 한 문자는 51.1578686 dB입니다.
이유를 말해 줄 수 있습니까?
정량적 측정의 문제점은 PSNR과 같은 측정 항목으로 정의 된 이미지 품질과 이미지 품질을 인식하는 방식이 완전히 다른 두 가지 점입니다. 주관적이며 개인에 따라 이미지 품질을 평가하기 위해 일반적으로 양적 측정 기준에 의존하지 않아야합니다. – rayryeng
예. PSNR 값은 이미지 품질을 확인하는 측정 값 중 하나라는 것을 알고 있습니다. 더 많은 캐릭터가 이미지에 삽입되어 더 높은 PSNR을 생성하는지 확인하고 싶습니다. 적은 문자와 비교하면 이미지에 포함됩니다. – kenreal
예, 더 많은 문자가 인코딩되면 PSNR이 낮아질 것으로 기대합니다. 보다 구체적인 답변을 원한다면 관찰중인 효과를 보여주는 간단한 예제 코드를 게시해야합니다. – Tokkot