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

PSNR计算

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    im1=imread('lena2.bmp');$ X& ~6 d4 F/ G' _
    %im1=im2double(im1);
    1 |7 _% i! K  Mim2=imread('lena_rbhv.bmp');
    . r9 K4 G- I) T, X( e%im2=im2double(im2);  d# ~3 g0 B0 T  N
       
    9 y. K/ G/ A& Iif (size(im1))~=(size(im2))+ M2 R* P+ t% o7 f
        error('错误:两个输入图象的大小不一致');5 W- }0 v9 E( x5 A+ j5 M9 L8 o+ n
    end5 V8 l0 l6 p6 V
    ( t1 f* A7 n6 Q. D3 w1 Z" t" Q
        [m,n] = size(im1);" t/ n( R5 X9 u
        A = double(im1);
    3 A8 i/ A$ z( |    B = double(im2);7 L! r2 c. u/ `1 V3 @$ J
        D = sum( sum( (A-B).^2 ) );%||A-B||^2( j: K# a. \. N! N* x
        MSE = D / (m * n);
    7 C1 J8 x' f3 k/ \4 eif  D == 0
    : o1 d" v3 |( O2 B, o( p    error('两幅图像完全一样');/ s% I9 N6 k& M" |  O8 p
        PSNR = 200;3 v4 ?* g: d3 r# V% K
    else
    * [5 f, M! |6 _    PSNR = 10*log10( (255^2) / MSE );                                                        / Q9 {2 L5 X: z$ t- s( ~
    end
    * n1 d$ O) z8 E5 k) Z) k+ K
    2 F( L! T  H7 Y5 |0 R( {8 ]2 v& ?& p2 r- v4 w  n
    从网上COPY了下 稍微改了下  我不知道这一行为什么出错  请指教
    ' d& j; _% g% ]$ D1 Z' `" d5 f??? Subscript indices must either be real positive integers or logicals.
    6 @" N8 Q! @9 V8 B- _' s0 E1 _+ a9 U" O( }- T( ?. s. p- t
    Error in ==> PSNR_ERRO at 14- W$ f1 I% f% W" @* x8 g
        D = sum( sum( (A-B).^2 ) );%||A-B||^2& ]* C" `8 l) _, ]
  • 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()
      o( Q# V/ x, {  f( Iclc; close all;
      g! I! Q) i5 g: \0 T, iI=imread('cameraman.tif'); %用的是原图7 [4 D3 @* E' y, k8 \
    I1=imnoise(I,'gaussian',0,0.01);+ v; }+ w# Z8 l, h, o/ @- Q; `1 \% g
    figure;
    ) \) h1 t! x  ^" a! P- asubplot(1, 2, 1); imshow(I); title('原图像');
    " v) N% B  S0 {) Xsubplot(1, 2, 2); imshow(I1); title('加噪声图像');
    $ t* ]' e- ~# H7 @' T  {% v% e[PSNR, MSE] = psnr(I, I1)
    4 T7 q3 l4 ]9 w! m# q% 图像峰值信噪比PSNR、均方根误差MSE
    8 J0 l' Q9 q% B) |% l. d2 ~, Afunction [PSNR, MSE] = psnr(X, Y)
    2 }( O5 V$ \- g, _% 计算峰值信噪比PSNR、均方根误差MSE
    2 B8 F" j  y8 M3 b! ~& y: J% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE9 p5 b1 C6 Q9 i4 \3 U& a

    9 L0 [: B; {7 S6 P7 M% I$ Xif nargin<2
    6 }. \7 a( a( O6 H7 `    D = X;( z  U2 I& X. x# X& \$ o* K; d& v
    else3 n% }- f' q" `! O( ]7 ^
        if any(size(X)~=size(Y))) e8 o7 s+ B  R
            error('The input size is not equal to each other!');
    / b0 G% U" T9 ?+ x    end
    1 |$ e: ^, S1 J- `& E/ p# C1 H    D = X-Y;$ T: m8 y: i8 y( }  g8 g
    end
      H& ?$ b! U! o- t0 m* l5 i/ rMSE = sum(D(: ).*D(: ))/prod(size(X));
      S) q$ \. I6 _) {PSNR = 10*log10(255^2/MSE);
    4 G/ I! k5 y8 }) W9 o/ yfunction main()) ?2 s: L0 _# |# W; w0 @: s* o- I& k
    clc; close all;
    + s7 h7 _9 A, K* m& R1 iI=imread('cameraman.tif'); %用的是原图5 q9 L! E) u' h
    I1=imnoise(I,'gaussian',0,0.01);' e0 a/ s' S& g7 S2 ^( l  f. b/ V
    figure;
    5 t# l- y% b, w$ I% x9 Csubplot(1, 2, 1); imshow(I); title('原图像');( f3 B' B5 C* ]0 p- ^9 F( \  j
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');! a2 |  Z! |  n  y6 T6 x
    [PSNR, MSE] = psnr(I, I1)
    5 l5 C5 r- s" W; K( \; h; q6 K1 p$ U% 图像峰值信噪比PSNR、均方根误差MSE
    ) N3 Y) x6 d# c4 Wfunction [PSNR, MSE] = psnr(X, Y)
    6 I3 g) m6 U4 r, J3 W% 计算峰值信噪比PSNR、均方根误差MSE
    3 b) h& V+ A5 C( e* e- i% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE" {9 ]$ [) p6 k  R$ F/ Q. }

    ; r! }. ?3 l4 s, Dif nargin<2
    ) ?) Z5 F# ^* G3 z    D = X;
    0 U( u) Q  Y' \1 zelse
    1 J+ r0 P6 r% r5 l) Z$ N    if any(size(X)~=size(Y))
    , h. [. W* Z0 ]9 c/ c/ a# ?        error('The input size is not equal to each other!');- a7 m3 P3 m9 e% ?
        end; |& s1 [  p9 w9 f( T8 Q5 k6 W
        D = X-Y;  n1 f1 s! d) L, n. Y
    end% I" t4 ~6 C  i! S2 ^4 t! l! G' S, |! n
    MSE = sum(D(: ).*D(: ))/prod(size(X));9 n8 q& v5 }: k# F
    PSNR = 10*log10(255^2/MSE);
    $ I- n7 J+ v) g9 n9 k8 U用这个算法算下吧,I为原图 I1为加噪图像
    . }5 p( \5 x4 ?* O9 N5 O0 C4 g: m: x
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-19 07:16 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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