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

PSNR计算

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    im1=imread('lena2.bmp');/ c$ t+ h- V. W: ]  B5 Z; _
    %im1=im2double(im1);' Y9 c+ c* R0 V2 c" a1 v
    im2=imread('lena_rbhv.bmp');
    / P0 V; e( u1 n' f%im2=im2double(im2);0 ?' x8 @- v4 U8 ]$ P3 c# r' u
       
    * G5 q- ?' }; ^& Y+ u9 ?1 G. c5 qif (size(im1))~=(size(im2))8 E3 y/ S$ E' K% a+ u* |1 D1 A; S
        error('错误:两个输入图象的大小不一致');' A7 B) J) l( A' S$ L& m3 ?& A
    end; n* j) N, }9 p  D
    4 H6 }/ Z# W3 f& _3 h
        [m,n] = size(im1);/ I, X+ ~  H! O6 ^. l& |; k1 w' ^
        A = double(im1);6 M8 `  E) L0 E' m: I( d* y
        B = double(im2);
    1 P7 R; m1 C6 t5 Z4 J4 D9 d9 q* n8 P  T    D = sum( sum( (A-B).^2 ) );%||A-B||^2' C) N1 J+ y4 w% J# P. J& m
        MSE = D / (m * n);
    & e* q, G: a0 @# q7 T$ tif  D == 0
    6 b8 d, C* _( J5 K5 S    error('两幅图像完全一样');
    3 p1 }6 _2 }/ w+ \    PSNR = 200;/ h9 `+ m9 s, M" X$ [$ |8 f6 ?
    else' ]3 [' F5 x* ~7 B7 c# j: t' `$ l
        PSNR = 10*log10( (255^2) / MSE );                                                        : w. E2 T9 m3 F# F
    end6 d# l3 }) J# t- f
    ) _* n# J4 c1 I3 v* |
    $ j& [1 ]+ h4 E4 q( U6 |
    从网上COPY了下 稍微改了下  我不知道这一行为什么出错  请指教
    * ~4 j& k- i2 i# \& u8 w! T& ~9 Q1 [??? Subscript indices must either be real positive integers or logicals.
    0 B4 l5 h5 U2 Y6 A  T
    1 w9 [. v  h; a2 R9 _) ^Error in ==> PSNR_ERRO at 14  K4 _( j2 P/ I6 _
        D = sum( sum( (A-B).^2 ) );%||A-B||^25 \2 V/ _8 e3 B3 y- _- N
  • 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()
    + c8 x% `! x; Z0 W" A$ @clc; close all;( {5 A% ]5 g# Y2 i7 Y' P0 L
    I=imread('cameraman.tif'); %用的是原图
    1 V9 V5 \8 O- ^! J  {) {I1=imnoise(I,'gaussian',0,0.01);
    % ~# Y  b( |) U2 u* [; _3 N  pfigure;
    & p0 E+ s# W% v8 usubplot(1, 2, 1); imshow(I); title('原图像');; G  S6 M2 T* F( s
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');
    % P. [* V" f- X0 B. @6 P[PSNR, MSE] = psnr(I, I1)
    & H5 V5 l+ \9 g# `, y7 }% 图像峰值信噪比PSNR、均方根误差MSE
    7 p& L: `. ^5 k0 R# G1 |- ofunction [PSNR, MSE] = psnr(X, Y)
    , F: p$ n# Z- c: T% a/ D, [$ T% 计算峰值信噪比PSNR、均方根误差MSE
      {8 q: A; d* t3 Y  z% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE* E( D2 E- ~) [6 b8 M/ x* a) y

    9 [; |* Y9 V: K& Lif nargin<2- T" S  L) c* @  z! x
        D = X;/ P3 d: f4 B0 ^9 a
    else9 x- r2 A8 L. n; M& o
        if any(size(X)~=size(Y))
    + N8 H" W" c' H0 B( C1 h  A0 x* Y        error('The input size is not equal to each other!');
    4 C0 B# q( j0 H    end4 |" N1 E# |" j8 {( b
        D = X-Y;
    6 E, K; |9 ^" k" Pend: ~- W1 A! o4 H- _5 w$ v
    MSE = sum(D(: ).*D(: ))/prod(size(X));
    8 X" ?" {% s$ m; KPSNR = 10*log10(255^2/MSE);: V  e& b) H$ k# T, W2 n
    function main()5 M5 }+ v4 u+ k. h* k5 [
    clc; close all;2 F6 x1 }+ `* e* p1 u7 a8 x
    I=imread('cameraman.tif'); %用的是原图
    - x9 ]- N1 W1 L/ j/ ~I1=imnoise(I,'gaussian',0,0.01);
    6 ~1 E1 D0 i2 Q  k( \5 y6 cfigure;) l, h+ j0 H! ?) w: Y. `
    subplot(1, 2, 1); imshow(I); title('原图像');8 y) M$ x" e9 F
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');
    7 d7 }+ r, c+ `; Q' u" s9 V[PSNR, MSE] = psnr(I, I1)1 ~1 |" S# ^) j6 [3 B' W
    % 图像峰值信噪比PSNR、均方根误差MSE+ [4 x  z4 [4 ?, @; b
    function [PSNR, MSE] = psnr(X, Y)
    * q0 G- d, ?7 `% 计算峰值信噪比PSNR、均方根误差MSE/ q( J' v) g& E! ]3 ~. {
    % 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    ( N" A3 ?+ I2 I" b" \+ x+ l0 D9 |+ }) C0 i: ^
    if nargin<28 |, w9 q  i1 @
        D = X;# x6 M! h% X( G/ J2 a
    else5 x. n7 I; S6 q% N* W8 A
        if any(size(X)~=size(Y))
    / k" b- v, J5 w7 |        error('The input size is not equal to each other!');9 c& A. M! M, ]
        end9 q8 |# L5 E# Z6 ?  K5 ]0 c) E
        D = X-Y;
    6 y" f( y, ]. ?  Q9 i5 Cend
    ; ~$ y" z! w& AMSE = sum(D(: ).*D(: ))/prod(size(X));
    & z1 Y+ N  q; X* {# F: lPSNR = 10*log10(255^2/MSE);) A( a0 L% j. n8 @6 M/ {
    用这个算法算下吧,I为原图 I1为加噪图像7 I, G. D. I$ a- {1 H$ `
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-23 17:25 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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