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

PSNR计算

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    im1=imread('lena2.bmp');
    4 f( f% S0 [' L) V: K* C%im1=im2double(im1);
    8 Z3 H5 ^. @2 H+ c) V+ ]im2=imread('lena_rbhv.bmp');
    2 S' p* R1 J5 d7 V%im2=im2double(im2);& s" D5 q$ m5 Z7 S0 ~/ J
       
    9 W  F4 L6 h$ M$ B' P4 ]2 ~6 cif (size(im1))~=(size(im2))
    6 j# c8 T% v' ?    error('错误:两个输入图象的大小不一致');
    ) q  C. _, j- ]5 p% gend
    " z  k3 `" X+ K# B2 J- B; B9 E# q: W$ B! `! D4 l3 }+ q' N
        [m,n] = size(im1);
    8 y0 g) k1 V+ {% z4 K    A = double(im1);
    ; R' p( W% R' U$ _' o    B = double(im2);0 L9 Q- B& ]7 O! z1 a" Q3 i
        D = sum( sum( (A-B).^2 ) );%||A-B||^2" D- M# o2 ?# E+ O; ~
        MSE = D / (m * n);
    3 h& ~" S; f7 v( O0 ]* Zif  D == 04 k+ g7 J4 T. d
        error('两幅图像完全一样');
    3 w4 r; q4 o& {( }" B1 J0 @    PSNR = 200;& }% s! K6 H( H8 |% Q, i4 f
    else
    ( `) _* L- t: r: U3 R$ x    PSNR = 10*log10( (255^2) / MSE );                                                        
    8 S  S  P! N* T2 [3 i( P7 D8 K4 Tend
    / o: e% b7 q3 ~$ h
    : t  V# `6 h+ s2 F& y/ c# m2 V( A# H6 Y& f6 C9 ?) I: Y
    从网上COPY了下 稍微改了下  我不知道这一行为什么出错  请指教1 o+ m/ z% ~1 Y* D0 ~; a- |
    ??? Subscript indices must either be real positive integers or logicals.
    $ y% s; {8 [6 c2 m6 O$ [
    ! L% ^. M2 ~( P( u5 L5 E! [9 ~Error in ==> PSNR_ERRO at 142 W% H7 Z" T' a* m2 z
        D = sum( sum( (A-B).^2 ) );%||A-B||^2
    , A. x, B& X* M
  • 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()% X. R) o9 V9 {5 Z
    clc; close all;
    / ?9 h5 D: B6 b8 R; j; PI=imread('cameraman.tif'); %用的是原图
    8 \9 }+ |% g3 j! Q& l# TI1=imnoise(I,'gaussian',0,0.01);
    ( X; z" x5 E/ D# n7 M/ Vfigure;. p+ [0 G% ?* Y
    subplot(1, 2, 1); imshow(I); title('原图像');3 J1 Q+ G, L3 ]0 Z
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');: Z* Z- p) F4 g. X/ D3 s
    [PSNR, MSE] = psnr(I, I1)
    % ]' g) p- z% Q% 图像峰值信噪比PSNR、均方根误差MSE3 h' q+ h' A4 _1 c( W: }/ Z
    function [PSNR, MSE] = psnr(X, Y)) ~0 t* R' q9 `$ b" S, K. J
    % 计算峰值信噪比PSNR、均方根误差MSE" Y$ v& N* Z+ a
    % 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    : C. g4 I$ q, T2 R* ?
    , e" R& [6 ~0 Z7 L. W+ B' r- Aif nargin<2- O6 G5 B9 J) Z% L9 y( v$ N0 |
        D = X;
    ; x3 K% e. _; S+ S0 welse. `0 {" Q! }. Y- M0 m( [, J( E$ d
        if any(size(X)~=size(Y))3 l6 G* G% y& |1 D# P- Y. a
            error('The input size is not equal to each other!');
    - A% a2 ~2 S6 p& H. g9 k) m0 g    end" f$ t6 E; s$ a* Q9 b4 l5 E" _" n
        D = X-Y;
    : @8 |& I' f7 m  w# nend
    ) h  A% @) j5 F& z1 u3 IMSE = sum(D(: ).*D(: ))/prod(size(X));8 @& x7 X2 F9 U5 I$ m1 ?
    PSNR = 10*log10(255^2/MSE);
    4 S; S1 P1 i4 wfunction main(): [3 f$ V7 [, X: q5 ~* \
    clc; close all;3 x4 H- S% ^" |9 B
    I=imread('cameraman.tif'); %用的是原图4 f, Y8 B2 _1 D1 r$ y
    I1=imnoise(I,'gaussian',0,0.01);- v0 _, A( d  k* r6 z3 M
    figure;
    7 ~; L! Q" n5 V) ]7 V2 _# xsubplot(1, 2, 1); imshow(I); title('原图像');8 @9 D, @8 V8 ~% l1 M
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');
    & d+ \9 `/ M! F0 V7 t[PSNR, MSE] = psnr(I, I1)
    * z" k& Y2 L. J% x+ A% 图像峰值信噪比PSNR、均方根误差MSE
    + M, e0 E+ l; u" z9 ~& Qfunction [PSNR, MSE] = psnr(X, Y)
    # P5 A! ^. Q$ k% 计算峰值信噪比PSNR、均方根误差MSE  v# ~$ p1 l7 b0 f
    % 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    " ]! ^4 K# Q% q: a* D% w
    9 @  `# p7 ~+ q2 c. J: tif nargin<2. V- p7 Z" u. z) n3 |
        D = X;
    * H3 \* ^9 v/ L! kelse* i! I% H0 k5 b4 n' A
        if any(size(X)~=size(Y))6 @* D6 O. p: C. B4 {1 U4 m
            error('The input size is not equal to each other!');9 C& H+ J, F% X, j/ S6 ]
        end! L( `; a, h* Z- K5 S1 s4 C
        D = X-Y;3 o6 [: B# W" W$ j1 L
    end
    ( v" d- K; D/ p/ q" D" x5 C; q) bMSE = sum(D(: ).*D(: ))/prod(size(X));
    + N8 Y* T0 B0 ]$ oPSNR = 10*log10(255^2/MSE);3 P: u$ M( [3 Z0 T- d! C
    用这个算法算下吧,I为原图 I1为加噪图像; Z/ B# I. T5 G: g7 Q9 O, r8 i
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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