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

PSNR计算

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    im1=imread('lena2.bmp');$ z8 s- V9 v0 ?! F/ T
    %im1=im2double(im1);
    9 |+ l% p0 p/ s# l  r6 i, q6 [5 aim2=imread('lena_rbhv.bmp');
    8 ]0 q5 ~+ P) \/ `! ^%im2=im2double(im2);
    9 w' W& f9 ~* t1 K+ S8 N   8 i5 @9 m( I8 l& P  I& }5 O2 y+ x
    if (size(im1))~=(size(im2))
    ) \  M3 C: _) }4 X    error('错误:两个输入图象的大小不一致');- M* C3 f1 A* Q+ e
    end
    + `+ V% q* L, s$ v
    ( @. T; g* v* W' i1 Q" l    [m,n] = size(im1);( c! O) B: k* Y
        A = double(im1);
    % |/ o7 J" z1 [4 _: z    B = double(im2);9 S0 a  G4 q' q& c$ C* }& p
        D = sum( sum( (A-B).^2 ) );%||A-B||^29 ^8 N7 y' V6 G1 Y4 }
        MSE = D / (m * n);4 _( d6 w; M( u' T+ S
    if  D == 0. w+ E# l7 Y& ?/ e) _, z( l
        error('两幅图像完全一样');
    ( c5 K0 S: r9 K( [! R- M    PSNR = 200;2 C2 b) B; e9 Y; Z- v
    else
    2 E" v( E5 \6 b2 t8 i& W    PSNR = 10*log10( (255^2) / MSE );                                                        
    4 q2 x6 W( n# T! F& Aend
    + h1 x# u9 X, ^
    ' n& w1 d* h3 c$ r% E$ s8 _  A+ p- l( g+ N6 l1 y& Q
    从网上COPY了下 稍微改了下  我不知道这一行为什么出错  请指教
    ; K/ D$ n( \7 C+ d1 U8 B??? Subscript indices must either be real positive integers or logicals.
    7 ~0 x; B9 I4 Y$ Z% L+ D4 E2 x& D7 B# b, O
    Error in ==> PSNR_ERRO at 14' v( r+ M! [# B- c0 Y
        D = sum( sum( (A-B).^2 ) );%||A-B||^23 j* i; y8 v# _7 ]1 \
  • 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(); f' \' F$ w  A, s8 |
    clc; close all;: j# d) h+ U8 U5 Y
    I=imread('cameraman.tif'); %用的是原图
    $ \3 L. u% E2 ]/ d0 b% s- @7 Q) g% |I1=imnoise(I,'gaussian',0,0.01);: J+ X3 Z1 u7 I% i9 q
    figure;
    ) y) i' K  l' Z3 hsubplot(1, 2, 1); imshow(I); title('原图像');( c1 v9 o  k" j  m. {3 a
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');# o" k" @& ~. ?# N
    [PSNR, MSE] = psnr(I, I1)
    5 w* W" y1 D% ]2 {% 图像峰值信噪比PSNR、均方根误差MSE. E" [9 E" }0 O4 }! a$ N
    function [PSNR, MSE] = psnr(X, Y)9 _8 _! s, t- S7 q( F" U
    % 计算峰值信噪比PSNR、均方根误差MSE8 \" h9 `5 m- c+ B5 S7 V+ c
    % 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    ) S2 q, }4 I' D, `! _
    0 F9 H; S( P- C% gif nargin<2. a/ O' X( U- z* N# |. G/ B  l7 c0 V
        D = X;
    , v+ d" X' W2 H* D, ^  ]( F) g; delse
    2 N  O4 _5 u! ]3 ]) X    if any(size(X)~=size(Y))7 J; f9 V# R) D+ @/ k3 g7 o
            error('The input size is not equal to each other!');/ }% P  j+ Q2 R2 V  S
        end: k) e7 p& x* U# x1 Z8 q7 D! v
        D = X-Y;
    ; V1 }$ U6 c4 P' ]) Aend
    : @+ R/ ?$ x1 OMSE = sum(D(: ).*D(: ))/prod(size(X));
    1 w9 M! \! ]8 z: RPSNR = 10*log10(255^2/MSE);3 H! f2 Q# G1 p( p' p8 Z7 I
    function main()% ]; t. Q( g" H1 c* Y- {: F
    clc; close all;
    8 C0 v+ F3 @- U8 q/ eI=imread('cameraman.tif'); %用的是原图
    / Y. q* Y5 X4 l0 QI1=imnoise(I,'gaussian',0,0.01);( \! a- Z4 w: }$ E
    figure;! V& n" Y% l4 H% e
    subplot(1, 2, 1); imshow(I); title('原图像');6 f' q$ V* c+ @" x
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');% s$ @% Z' X1 ]; U7 n& H
    [PSNR, MSE] = psnr(I, I1). s5 ?" o& ^1 p  J# \
    % 图像峰值信噪比PSNR、均方根误差MSE+ b7 T1 W; S  m# ]1 N2 h& w
    function [PSNR, MSE] = psnr(X, Y)/ G. |% k. s7 Q' X
    % 计算峰值信噪比PSNR、均方根误差MSE
    $ m- m0 l# x9 W7 C0 B+ Q% w% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    3 U+ Y. C# p& \& i% a$ o
    6 H' X) @1 {8 ]% D6 ?$ [6 Cif nargin<2
    6 y- l) s. J$ X& r8 c    D = X;
    / |- F& l* Z+ q! s8 \4 N* Selse! F4 x) V# u6 r0 y4 m
        if any(size(X)~=size(Y))
    - B1 B% w1 J0 l        error('The input size is not equal to each other!');+ N6 _& K1 [, O& [5 _, B4 ^& n
        end
    & P1 b( T1 i/ W8 }. ]" ^2 M9 x    D = X-Y;$ G- x: B* c! K( T
    end
    , B3 x8 E* s% V: {4 }! y/ KMSE = sum(D(: ).*D(: ))/prod(size(X));  m3 W9 b) K% N, f9 @- Q1 b
    PSNR = 10*log10(255^2/MSE);
    0 x) i0 M$ p+ {3 @, _  v/ y用这个算法算下吧,I为原图 I1为加噪图像3 P* i$ l0 \6 o# a6 ~
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-4 11:23 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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