找回密码
 注册
关于网站域名变更的通知
查看: 394|回复: 2
打印 上一主题 下一主题

PSNR计算

[复制链接]
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-11-22 13:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    im1=imread('lena2.bmp');
    1 H5 m- F" z! U5 h: S%im1=im2double(im1);# |' i2 Z6 V7 N& {4 z: K: n
    im2=imread('lena_rbhv.bmp');9 D1 D0 m6 a; {! Y% x. s  }
    %im2=im2double(im2);
    , v8 {$ u8 T  k! x   
    + x( u8 ^0 y4 S/ Tif (size(im1))~=(size(im2))% Q! `9 g+ @9 X$ w: P. f" A
        error('错误:两个输入图象的大小不一致');
    ' Q; V/ g* o# @* Y* P- P) {+ bend
    1 l; T) t, \- d  Y# W/ t4 r
    1 G; i* |0 ^; H, C    [m,n] = size(im1);; D& }3 p1 e0 _( s
        A = double(im1);
    " N  \2 t1 Z7 C  s% i    B = double(im2);7 X# h8 R1 F" ~
        D = sum( sum( (A-B).^2 ) );%||A-B||^2: Y& x; k) O1 T9 q
        MSE = D / (m * n);+ ^4 G+ \: ]" k, G' Q
    if  D == 0  j' f( e) u0 V3 Z4 y& `( A
        error('两幅图像完全一样');
    ! x0 o! b: B2 B2 M. N. p" |1 [    PSNR = 200;
    5 n5 b9 ]+ M3 G& celse' |! Y6 I: x) ]5 A( d
        PSNR = 10*log10( (255^2) / MSE );                                                        6 n, E3 B' b- k  v
    end
    ' N/ d4 t* S5 Q# J2 \5 }# t2 U' ?( n5 c) h3 k

    * |; c" w% w& c% O" N& C从网上COPY了下 稍微改了下  我不知道这一行为什么出错  请指教: x/ N0 {' J  y, c* _* e' L  U
    ??? Subscript indices must either be real positive integers or logicals.
    / Z& P) x! [& [( J3 [2 B) s1 k8 n( ?: n( S# {. E
    Error in ==> PSNR_ERRO at 14
    0 V) v, C$ u0 W' m( M    D = sum( sum( (A-B).^2 ) );%||A-B||^2: N( Y) j7 K' @- B9 l3 c
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2022-11-22 14:58 | 只看该作者
    D = sum( sum( (A-B).^2 ) );指的是什么,为什么有两从sum?
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-11-22 15:08 | 只看该作者
    function main()& H. `$ T' w+ i' b
    clc; close all;
    # t- X) L5 k& ZI=imread('cameraman.tif'); %用的是原图2 y1 S2 T9 M) f* |: u3 l7 j2 O
    I1=imnoise(I,'gaussian',0,0.01);
    1 K5 A2 q$ D* s3 Zfigure;
    4 g, A: O, u5 b2 {subplot(1, 2, 1); imshow(I); title('原图像');5 _7 d$ q. [1 X# t- l  I
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');9 ], w) q6 W3 a. T  [6 E
    [PSNR, MSE] = psnr(I, I1)
    ' ]9 G# u9 t! v1 `5 m: k2 e% 图像峰值信噪比PSNR、均方根误差MSE
    7 ]( P! {! {- C! B1 l8 ~7 Dfunction [PSNR, MSE] = psnr(X, Y)( o; [  d) l; i. q$ B" u
    % 计算峰值信噪比PSNR、均方根误差MSE
    4 [2 D' o1 U( d& @- |7 v% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    ) A1 |1 ]2 A# x' U  L
    ; q+ j" s+ b8 @0 ?) A3 e; Z$ y, G% Oif nargin<2
    . C; J+ b2 y7 U$ l6 e/ ^5 W  \    D = X;
    2 z, @# ]$ n; i% n" Z/ V7 Pelse/ x. h( n) f4 C- w0 ?( T+ d  B
        if any(size(X)~=size(Y))
    % {1 }1 z3 x* J        error('The input size is not equal to each other!');
    & B; j. `$ k- ?( |    end) f& m& r' [* C
        D = X-Y;
    3 g9 s4 t" b: e* ]' ^, Hend# i9 j0 ~# A: T8 @. y
    MSE = sum(D(: ).*D(: ))/prod(size(X));7 _, {0 |$ g0 G$ ^! I2 x8 p' r
    PSNR = 10*log10(255^2/MSE);
    . C% n- T$ X( W3 t- w4 gfunction main()
      d8 h  G9 @# M6 oclc; close all;
    7 m, |" A: f# B0 w- h0 ~( P4 d. QI=imread('cameraman.tif'); %用的是原图
    4 `* B2 M8 U1 M2 F7 B- }, \I1=imnoise(I,'gaussian',0,0.01);
    7 Q! b& h, b3 z1 Qfigure;# ~/ \. V% y1 B- _' t
    subplot(1, 2, 1); imshow(I); title('原图像');
    # f' ^6 b: Z8 Usubplot(1, 2, 2); imshow(I1); title('加噪声图像');
    $ ]/ [+ s1 V8 o- c! {[PSNR, MSE] = psnr(I, I1), O6 }& P7 }; z
    % 图像峰值信噪比PSNR、均方根误差MSE
    ) c0 X8 T' w& u) E7 ?" ~  nfunction [PSNR, MSE] = psnr(X, Y)
      j) }+ ~- r! o/ ]: M$ S% 计算峰值信噪比PSNR、均方根误差MSE4 ?: H5 n& O- k% P0 v
    % 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    3 j( n+ i8 B. l) l5 y  A6 c: n7 p6 D, ~. ^: u  l) A1 s/ j
    if nargin<2
    0 |( p) }3 Q# ~3 J    D = X;
    / `, N0 k- h+ J7 A8 P, Telse/ `  o% n- y, X% I
        if any(size(X)~=size(Y))$ `' x0 `5 S3 R. v' ~
            error('The input size is not equal to each other!');
    , ^+ m$ l8 ?' L% r8 [    end$ g" W6 h. P5 V
        D = X-Y;
    " M* g" t& v. ]/ P! ^, Q+ i( z! Cend9 S1 S$ M8 ?: g4 Y/ ^, n4 W
    MSE = sum(D(: ).*D(: ))/prod(size(X));
      S/ C; ?7 N% mPSNR = 10*log10(255^2/MSE);
    6 f  [$ Z( v5 F: G' O+ z用这个算法算下吧,I为原图 I1为加噪图像
    ( x+ r0 F" O6 W$ G  i6 E& I
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-23 14:16 , Processed in 0.140625 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表