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

PSNR计算

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    im1=imread('lena2.bmp');
    3 Q& N1 h; T/ e' u9 l5 n6 g' ~%im1=im2double(im1);5 {/ y# z7 ~. u7 U0 g+ @) o( _1 A
    im2=imread('lena_rbhv.bmp');
    ( l( l, P- n$ \! ?. Q%im2=im2double(im2);
    0 k$ |) t% ~. O% ~+ z! C   & I$ O" L) T# m; F; z
    if (size(im1))~=(size(im2))% m) a1 Q" j4 d* s
        error('错误:两个输入图象的大小不一致');, r  T' B3 g2 A1 {
    end
    : O2 z5 e7 {" L4 |) l* x7 \" j, {; G) T* h
    # V7 ^: S* F5 R7 e    [m,n] = size(im1);
    ( k- t0 X% q  P& @    A = double(im1);
    8 K7 `  k! z4 \" k$ F    B = double(im2);$ }8 a. x6 K* ?, w" @
        D = sum( sum( (A-B).^2 ) );%||A-B||^2# p% c8 s4 y% {: A' R# h
        MSE = D / (m * n);
    5 r8 S4 E) _  R: i8 W+ R% [if  D == 0
    $ g" X6 }8 c5 y. c9 c- J% Y$ q    error('两幅图像完全一样');, n6 T0 y- }: T
        PSNR = 200;/ r5 p6 D  D# Z/ m/ P8 K
    else
    + U  p' V" F/ _' C6 e    PSNR = 10*log10( (255^2) / MSE );                                                        $ h$ Q" {% ~7 i+ R
    end
    & Q- G8 x$ h, A7 S& Y: H% R! D/ ?8 B( x# O
    ! C, B% V) n$ A: D8 J% i9 ?! U
    从网上COPY了下 稍微改了下  我不知道这一行为什么出错  请指教1 @% q8 t) K1 }5 ~' X- a6 F
    ??? Subscript indices must either be real positive integers or logicals.8 `6 |4 y$ y" h" d3 X* K

    + S% E/ M( w9 S. |7 |Error in ==> PSNR_ERRO at 14
    6 n: X$ r% {1 M' g    D = sum( sum( (A-B).^2 ) );%||A-B||^24 u. O, Z" o0 K1 o# @8 H
  • 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()
    - R8 |% ?( k/ `) _/ o% w8 T6 Dclc; close all;; P; c. t# Y+ j) i8 Q5 C. H
    I=imread('cameraman.tif'); %用的是原图& i$ D, i9 K: e+ ]6 O" C% Y
    I1=imnoise(I,'gaussian',0,0.01);& k+ B) E) w% h
    figure;
    4 b4 \9 ~( ~. K/ I( b1 u! Esubplot(1, 2, 1); imshow(I); title('原图像');
    2 Y3 e4 l2 K, t; M9 ysubplot(1, 2, 2); imshow(I1); title('加噪声图像');& K2 ~4 G5 ?* m' G% b5 @
    [PSNR, MSE] = psnr(I, I1)  D: P, l0 K# f) f1 S+ K4 v3 e) M
    % 图像峰值信噪比PSNR、均方根误差MSE
    " e6 a% F$ |  a  y+ d) Z0 W" _function [PSNR, MSE] = psnr(X, Y)
    ! e$ D* W: S6 A$ Z& b% 计算峰值信噪比PSNR、均方根误差MSE
    " p* v) p6 _+ I" g% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    $ L0 ^* _$ d# o' k. n( }. ?( c3 z$ \% ~
    if nargin<2
    - ~( a2 t5 x% M1 ]    D = X;; ?  h1 I! _7 k% u8 W1 X
    else* W! C5 z. ^' v
        if any(size(X)~=size(Y))
    0 F$ f9 \+ ^6 }        error('The input size is not equal to each other!');) u" B; o, l- ?: y: p: }
        end
    - y( [, e7 c! x- s7 d    D = X-Y;+ {' W$ h9 x4 c: e9 x
    end
    + s% L: X+ {# e0 h8 Q  a7 jMSE = sum(D(: ).*D(: ))/prod(size(X));
      B8 a0 X$ ^9 s2 V1 x" K8 N5 yPSNR = 10*log10(255^2/MSE);0 P7 u( D# T" S6 Z: r0 P) v" N0 d
    function main()  y, D3 X* |% Y8 N( z
    clc; close all;
    ( y9 D2 L3 T( CI=imread('cameraman.tif'); %用的是原图6 D$ Y; @6 V' M  P  D
    I1=imnoise(I,'gaussian',0,0.01);
    9 S: W4 n; G( \3 q5 b* e" E2 ifigure;0 E" w: \  a: t& [( x+ Y7 R
    subplot(1, 2, 1); imshow(I); title('原图像');
    , p2 s+ R  ^( c* s* Asubplot(1, 2, 2); imshow(I1); title('加噪声图像');
      ?$ k6 x( @) H8 k9 U8 U[PSNR, MSE] = psnr(I, I1)7 F/ l/ x0 e0 x- v2 r1 W0 `
    % 图像峰值信噪比PSNR、均方根误差MSE8 g  w7 H4 q, w: Z' W8 e5 F
    function [PSNR, MSE] = psnr(X, Y)
    7 A1 i' F0 \" j9 v* K% 计算峰值信噪比PSNR、均方根误差MSE
    . S8 j* s" H; l' o( q% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    5 m, C1 L$ o- L4 o8 V2 ?( F8 h# y  d
    2 X! j; Z, A" ]! e6 l* Q  Kif nargin<2
    . ^' Z+ `* p( J% B- _5 S    D = X;
    $ q5 Y( F" ^$ v( Yelse
    1 [* {: k) @7 M: Z+ K0 k2 E" w    if any(size(X)~=size(Y))( M2 B4 ~* ]( V
            error('The input size is not equal to each other!');
    ; Y8 W+ ]& z( q! h- s3 _1 e    end% x# y; l' x5 m4 I# ]
        D = X-Y;5 [1 Q( E# }5 k; [9 \
    end
    9 q# @* o! u) P. ]0 |MSE = sum(D(: ).*D(: ))/prod(size(X));
    6 E& t5 D  a! P& X/ wPSNR = 10*log10(255^2/MSE);3 B* Q" o; }- s7 {( L) n
    用这个算法算下吧,I为原图 I1为加噪图像
    / u1 H# U7 x- H$ h+ u7 o
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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