元の画像と暗号化された画像との間のピーク信号対ノイズ比(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));
、Iは原画像とステゴ画像とPSNR値を計算しようとしました。ファイルから読み込まれた100文字がイメージに埋め込まれ、高いPSNR値。 PSNR値が5文字未満です。
だからこそ、私は混乱する。
---ここに私のPSNRコードがある---
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の関数を呼び出すと、元の画像とステゴ画像のPSNR値を印刷します。
私は埋め込む多くの文字が、私は51.1687256デシベルを取得します。 私が埋め込んだ1文字は、51.1578686 dBです。
理由を教えてください。
定量的尺度の問題は、PSNRのような測定基準によって画定される画質と、画質がどのように認識されるかが全く異なる2つのことです。これは主観的であり、それは人によって異なりますので、イメージ品質を評価するために定量的なメトリクスに頼るべきではありません。 – rayryeng
はい私は知っているが、PSNR値は画質をチェックするための測定値の1つです。私はちょうどより多くのキャラクターが画像に埋め込まれ、より高いPSNRを生成するかどうかチェックしたいですか?小さい文字と比較すると画像に埋め込まれます。 – kenreal
はい、私はPSNRがより多くの文字がエンコードされると低くなると思います。より具体的な回答が必要な場合は、観察している効果を示す小さなサンプルコードを投稿する必要があります。 – Tokkot