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

PSNR计算

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    im1=imread('lena2.bmp');6 _" B) p; b& q: y/ \$ q
    %im1=im2double(im1);  t2 l. y0 J) N6 G
    im2=imread('lena_rbhv.bmp');
      H5 ^( F: F1 w5 H: L2 M0 W! i- N+ d%im2=im2double(im2);
    1 v/ ^; g8 x# q   , _' f8 `" z5 x
    if (size(im1))~=(size(im2))5 k0 l/ g& f4 J
        error('错误:两个输入图象的大小不一致');4 l8 _7 Z$ |) ]- y4 E# @* ?
    end+ \3 J4 r  }# H

    ' P- L3 E' A* H, _( F3 X7 N( B$ G+ s    [m,n] = size(im1);
    - K) z% D( A9 b3 H/ }1 ?    A = double(im1);
    4 Q1 |# ~: i; }6 n    B = double(im2);, c% V. O' z- X( R  O3 m; ]7 E$ {
        D = sum( sum( (A-B).^2 ) );%||A-B||^2+ G- c1 Q$ Z0 g8 d3 L
        MSE = D / (m * n);5 ]. u5 M. n" E  B, o2 q+ S* e
    if  D == 0
    : P: j" ]/ f( s3 k  k  o    error('两幅图像完全一样');
    6 k6 T, s3 T/ R$ P! q' h    PSNR = 200;
    9 a& P! p( ^: w6 @else
    - n$ M  a" Y- h6 Z! }    PSNR = 10*log10( (255^2) / MSE );                                                        
    7 U+ _0 F& p. \9 a9 zend2 ^0 O# ^: N8 D4 g8 X0 W1 `3 [2 T
    4 `1 d. D  }2 B8 I

    ' n6 x! y$ c& w/ w$ b! S: N从网上COPY了下 稍微改了下  我不知道这一行为什么出错  请指教' V; X+ o. k8 x/ T
    ??? Subscript indices must either be real positive integers or logicals.
      q+ V8 W) w, L4 ?  c; N! u8 G& }" ]5 n7 s9 n: f& [" _
    Error in ==> PSNR_ERRO at 14
    5 F. B- `' m, |7 ^1 v! y5 V6 ]8 @    D = sum( sum( (A-B).^2 ) );%||A-B||^2
    & }+ ?: q+ |& Z5 F) r
  • 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()
    * l: {, y/ Q, I; Sclc; close all;  r7 j( C9 ]$ M4 g2 W4 k
    I=imread('cameraman.tif'); %用的是原图3 H8 p: A# X* v* T6 l9 ^
    I1=imnoise(I,'gaussian',0,0.01);8 j8 F6 u  l5 m+ G0 G6 c
    figure;% l) z/ t, A3 z+ o2 a1 K; k/ l
    subplot(1, 2, 1); imshow(I); title('原图像');
    1 }$ e, V$ f5 E1 zsubplot(1, 2, 2); imshow(I1); title('加噪声图像');/ @' D+ m) K4 ^
    [PSNR, MSE] = psnr(I, I1)
    ! U) _  ~; ^4 @  I/ ~& t% 图像峰值信噪比PSNR、均方根误差MSE
    1 j/ H* a0 R; x, rfunction [PSNR, MSE] = psnr(X, Y)+ I* A+ B5 _* ^# o& i" l
    % 计算峰值信噪比PSNR、均方根误差MSE
    & w/ B0 c( b6 _, L8 \% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE" M( i' C" _# ~4 O1 l! M7 M8 x

    ; g# z: R, M8 Tif nargin<21 k( s2 ?8 A/ ?2 q3 G1 H$ S
        D = X;6 O% q7 B: `* o- f/ N" j
    else
    5 p& y! M1 D, ]' ?* L1 }    if any(size(X)~=size(Y))
    % f2 x( d; y7 {) ?        error('The input size is not equal to each other!');3 `" Z  G. t$ |) k7 t+ ]6 t
        end
    % T2 q# g" N" C    D = X-Y;8 d5 `1 T8 e' |; q" D
    end
    1 q, U5 Q9 C; u8 @$ T5 s1 k5 V7 ZMSE = sum(D(: ).*D(: ))/prod(size(X));
    3 r8 N; W% C. zPSNR = 10*log10(255^2/MSE);6 D' W$ v" x9 A  c4 C
    function main()
    # Y# p. A1 k  R; G+ wclc; close all;: I/ b2 j, ~( U* a! [' u# m! K" x
    I=imread('cameraman.tif'); %用的是原图1 a+ _) M5 @# [: o3 y
    I1=imnoise(I,'gaussian',0,0.01);" ]- }1 @7 o4 A0 o* l' O4 R
    figure;; u) ?; Z% ~, U5 o$ N) J0 C# r
    subplot(1, 2, 1); imshow(I); title('原图像');- J8 d/ w9 p6 \/ D! E/ o9 J6 s8 t
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');% m# |& G% H% \, @
    [PSNR, MSE] = psnr(I, I1)
      G4 |8 v7 a3 T) P% n1 h/ v% 图像峰值信噪比PSNR、均方根误差MSE
    + J/ n, K& u# y$ _- Z0 jfunction [PSNR, MSE] = psnr(X, Y)
    ; ?; _8 p+ f9 A! Z6 K' W% 计算峰值信噪比PSNR、均方根误差MSE( h7 p- o4 x( v; p- s! i* L* `6 z
    % 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    % S# _/ K5 W: Z: C9 p/ k, _& y: }$ G  d  m( v! H( R
    if nargin<2/ l) C6 T. w& q# D- i3 I+ c; y
        D = X;, T- V: x( o/ y; {5 x
    else3 N" f, F: B/ T9 @$ f3 S9 L* E
        if any(size(X)~=size(Y))+ H  ^- ?2 u0 W4 }2 \$ p+ |
            error('The input size is not equal to each other!');
    8 z/ N- m- P, y$ J2 n    end
    4 t3 d8 H' I6 `+ u' m* [. ?    D = X-Y;' }( j3 T" X- j0 q% _4 y1 T9 L" b
    end
    ; Z3 [% h6 t+ O; p+ lMSE = sum(D(: ).*D(: ))/prod(size(X));& O2 W" i* w  x' A4 A
    PSNR = 10*log10(255^2/MSE);- B4 Y! k. _1 w/ q: L9 u4 I
    用这个算法算下吧,I为原图 I1为加噪图像: C/ K4 g1 s% ?5 e* v- _" u' u
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-1 12:50 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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