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

PSNR计算

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    im1=imread('lena2.bmp');
    $ `3 w/ y% E+ o! k2 C0 O" ^%im1=im2double(im1);
    $ B8 v' s  q; v0 A& \$ @& |+ r9 X; Uim2=imread('lena_rbhv.bmp');* a+ p" R2 `( e1 t) f* W1 }- @
    %im2=im2double(im2);' @. ]$ R) d% m( v! C) A
       ) ?1 \0 v  u0 w6 r* p8 U( a8 E3 n, k
    if (size(im1))~=(size(im2))' h) x# F  _; [7 L3 w& z8 n
        error('错误:两个输入图象的大小不一致');
    # R% E7 a; S8 S+ }0 oend8 g  V4 j$ y% P8 g& @1 ?
    4 u0 B0 `( \3 c# q: T; H  O
        [m,n] = size(im1);
    + |/ Z: J! N6 [6 R    A = double(im1);. f" D8 _- L, Z8 v% s/ ~
        B = double(im2);$ Y) S% k) `* @- Z7 ~2 ~+ p6 V" w
        D = sum( sum( (A-B).^2 ) );%||A-B||^2
    4 x0 m2 y* D0 [* Q    MSE = D / (m * n);( U6 J( G2 H; e; K2 l) l
    if  D == 0
    , e7 s1 [$ o! v  p' o' ]( T    error('两幅图像完全一样');2 t' |! @. L% v; J- l4 r4 Z
        PSNR = 200;  n4 Y' l) I6 K$ L
    else1 j6 ?8 L+ v* \* t) m2 f8 |
        PSNR = 10*log10( (255^2) / MSE );                                                        * r3 b' A- w0 f. B8 P! `% L6 t
    end3 O+ U2 R0 G  n) w/ L0 ?/ O9 E

    , |/ f/ F) ]# \. B: f# e9 u4 y, e/ C" L5 q& O
    从网上COPY了下 稍微改了下  我不知道这一行为什么出错  请指教" B/ M% S6 p' Z
    ??? Subscript indices must either be real positive integers or logicals.
    . ^* _* |1 z2 \7 T4 w; h* \
    ' k" j3 |* L5 S2 RError in ==> PSNR_ERRO at 140 r7 r" D+ O1 `6 y+ |) W) v' q
        D = sum( sum( (A-B).^2 ) );%||A-B||^2
    8 C9 w+ I4 Q& T
  • 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()9 L5 ?+ e% e$ T1 A1 q
    clc; close all;
    * ^. T' k9 }, }; d4 XI=imread('cameraman.tif'); %用的是原图; }5 @; _3 B; H( w3 ]$ u1 w; c
    I1=imnoise(I,'gaussian',0,0.01);
    ' o7 p% j& a) T' C' hfigure;
    . l0 o- n4 y! _! Usubplot(1, 2, 1); imshow(I); title('原图像');& f$ H5 Z) }+ j# h
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');& |1 ~6 t6 g- v. ]2 }
    [PSNR, MSE] = psnr(I, I1)8 N  E3 p! ^, {+ X& ^2 K
    % 图像峰值信噪比PSNR、均方根误差MSE
    4 g; ~) Y1 ~; |" j  d0 b; A1 z% ~function [PSNR, MSE] = psnr(X, Y), d) U7 u7 t% W! W! J$ C
    % 计算峰值信噪比PSNR、均方根误差MSE
    1 h5 A9 i1 t( \: I. I" \  G% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    4 k4 |  _' U& Y# T5 |' F9 g( ~2 c0 e4 ]* }0 E" G
    if nargin<22 W/ a: ]* {2 A
        D = X;
    % n* ~/ ?1 I# X& I2 t+ Uelse
    , H, ]% p0 u/ C    if any(size(X)~=size(Y))! q3 J2 r! X2 N8 M+ \9 a
            error('The input size is not equal to each other!');9 Q) u/ `$ A  O2 J8 F# Q0 h
        end8 w, x8 }7 H0 k+ ]) A- Q9 D, G% p( s! o
        D = X-Y;/ w, C1 s0 r2 O
    end
    ' Q6 I- M; _2 t% y/ O% AMSE = sum(D(: ).*D(: ))/prod(size(X));
    ( l3 P5 i+ [$ N/ k$ @: X: Q+ i2 [+ H8 [PSNR = 10*log10(255^2/MSE);! I* I! a; K9 Y& T' i5 g8 T* Y
    function main()
    5 {% n/ Z% V- V! C# W- G& ~3 Vclc; close all;
    % d) F' q- Y8 V5 ZI=imread('cameraman.tif'); %用的是原图/ n' A: Y7 K9 l
    I1=imnoise(I,'gaussian',0,0.01);& w6 A! a8 q5 T& ]
    figure;6 Z" ^2 q) q7 c
    subplot(1, 2, 1); imshow(I); title('原图像');8 ~6 @: H3 h! J7 X
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');# n# x2 T/ z% O* q( j
    [PSNR, MSE] = psnr(I, I1)+ j7 I- F: C( \: ^) C) I# G
    % 图像峰值信噪比PSNR、均方根误差MSE! j* t# k; l8 P, G7 w9 k
    function [PSNR, MSE] = psnr(X, Y)' Y' E4 _4 X: n( d* B+ p! t
    % 计算峰值信噪比PSNR、均方根误差MSE
    & E5 S/ A' _; h6 {% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    : L/ e5 O7 J& V7 Q* r; d* C; i+ ]$ v& `: C2 Q7 b/ A/ f- G
    if nargin<2/ o0 q/ A5 F  H3 F2 b4 |* [/ a
        D = X;! ~$ y1 A9 V3 ^/ s) s# S
    else
    0 l7 S& b, Y( V! R$ Q2 `: C! j0 G    if any(size(X)~=size(Y))
    # C4 C. m; D& X2 j! m: y8 S( a$ D        error('The input size is not equal to each other!');! O& A# `$ q1 w$ j
        end
    : J! R2 D1 y) G5 |$ Z$ [& M/ \2 N    D = X-Y;
    3 d+ x$ s! |* P4 C! @  Q) Z8 U' rend" O) @" F& _( E3 C6 S, T
    MSE = sum(D(: ).*D(: ))/prod(size(X));6 a6 W! a, x/ E" ^0 Z2 w
    PSNR = 10*log10(255^2/MSE);
      [" t2 T3 _3 b! V% r用这个算法算下吧,I为原图 I1为加噪图像/ y: h, N8 b2 v+ N/ ^
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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