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

PSNR计算

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    im1=imread('lena2.bmp');
    7 E4 D* k( _3 S$ {%im1=im2double(im1);
    : O& t$ i8 \* p: W+ b# dim2=imread('lena_rbhv.bmp');' B) K* b: E% M$ U' A$ I& T
    %im2=im2double(im2);
    ( R; V1 q) u1 [4 A; n. d" V9 A) F   
    9 C5 N' G- P7 s% Jif (size(im1))~=(size(im2))
    & h% Z; |& T, a% A+ ]    error('错误:两个输入图象的大小不一致');/ g4 I0 b1 N' a
    end& N1 T6 `- r! \( w
    1 n- C8 x- t: C1 d! K; Z- a7 \
        [m,n] = size(im1);
    3 \$ g& T1 t* o9 h- P; W    A = double(im1);
    " t; }, d9 }3 U5 p& s1 O' B    B = double(im2);
    ! r& _+ w+ d5 ?    D = sum( sum( (A-B).^2 ) );%||A-B||^2
    - m: u. D6 M' U1 |8 l    MSE = D / (m * n);
    & ?: }7 @6 Z5 Z. j  mif  D == 05 N3 W) }/ E/ f/ `! }, k8 @
        error('两幅图像完全一样');
    3 G4 \' Y; {7 Q5 ~7 _; L7 N    PSNR = 200;5 K: T1 G% T( B
    else
    / ^( J. x! X" G2 L8 T; |    PSNR = 10*log10( (255^2) / MSE );                                                        # q% ^4 Z8 l. ?( o* q/ M: W
    end
    1 [4 J4 {# {3 p: J0 G( J6 Z1 ?
    8 G4 R& y# [) U
    4 ~1 E% p' ~1 v. ~  B' o7 W# ?从网上COPY了下 稍微改了下  我不知道这一行为什么出错  请指教. m; y+ R& p# G3 H' b$ H: U: v* F" L
    ??? Subscript indices must either be real positive integers or logicals.. g: l& r0 m- \& }

    8 l9 F  o: e9 o0 l! R& a" v1 tError in ==> PSNR_ERRO at 14
    3 ~: Z  ~" u7 |+ N3 L    D = sum( sum( (A-B).^2 ) );%||A-B||^2% R  ?+ W+ z3 @4 i( J
  • 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(), X9 N. |. q7 v. \7 W
    clc; close all;
    + _) R# a7 s, F. Z' s3 Z# j% r. LI=imread('cameraman.tif'); %用的是原图8 ~" g( E) T0 Y$ P
    I1=imnoise(I,'gaussian',0,0.01);
    : s& c. n) [- f' t3 X5 c5 s. nfigure;
    4 q+ i& z8 v$ z! s! Q- L' asubplot(1, 2, 1); imshow(I); title('原图像');$ i9 [7 G; a( f  i0 L0 K+ U
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');  N  L0 q, T/ |3 H
    [PSNR, MSE] = psnr(I, I1)7 e) ^! S% A; E3 C9 _8 `
    % 图像峰值信噪比PSNR、均方根误差MSE, ~6 Z4 T8 ^5 H7 z" X, d
    function [PSNR, MSE] = psnr(X, Y)
    5 a6 }4 H& d# k) u' e. _% 计算峰值信噪比PSNR、均方根误差MSE
      I0 A0 e5 v2 J# h) i! v5 W% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    * i9 M: u( a- O% K5 k5 \5 x
    ' h* M/ F1 `3 ]1 W" n/ Bif nargin<2/ \1 [+ H/ F, T5 l
        D = X;
    - L8 Z' C/ {  @, N. |5 N! m) e( Selse
    3 P9 ~% o! G* ]4 ?# [. {; p    if any(size(X)~=size(Y))% M( {0 k! o7 @) s& d; {
            error('The input size is not equal to each other!');# P' f8 ?9 o' o7 ]2 ~" i
        end
    2 g$ g4 O; }4 D7 ~8 E3 [    D = X-Y;
    & i; q2 p! v6 a2 dend
    1 a2 L5 _8 ]2 X2 ~$ W' [MSE = sum(D(: ).*D(: ))/prod(size(X));
    & j& V/ ~" G+ aPSNR = 10*log10(255^2/MSE);% C: d; G8 D8 }& _* [
    function main()
    ' J1 y  y: M/ ~. I% g! P( oclc; close all;7 O$ a$ Z. v. V7 A. `2 q* B9 E
    I=imread('cameraman.tif'); %用的是原图
    - A8 o& s; o& r: M4 j/ PI1=imnoise(I,'gaussian',0,0.01);  s$ E9 k: ?/ ^: D4 q& D& y
    figure;
    % ?7 f+ Q% f# l, F6 tsubplot(1, 2, 1); imshow(I); title('原图像');) |: D' K5 U* Y6 D+ d4 v0 d' d- P
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');  ]8 E& ]4 r: S8 `& O* w
    [PSNR, MSE] = psnr(I, I1)# S$ h6 D& a/ @5 g4 b1 }# [6 R
    % 图像峰值信噪比PSNR、均方根误差MSE
    % E* q$ g2 }# H) F, k+ c8 @  ufunction [PSNR, MSE] = psnr(X, Y)
    - v4 Q$ k; b2 ]- @7 \% 计算峰值信噪比PSNR、均方根误差MSE
    * }8 _+ K6 z" Y* E% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    ' L0 t  [3 N9 [; M2 p% @5 J7 h6 B2 x) b% F' s' `
    if nargin<2
    4 s, d; F6 o. H    D = X;
    9 e6 h: o, l3 f, k/ q# P  W8 [else" I, T% D" S  f0 z! l. b) n
        if any(size(X)~=size(Y))
    , F" Z6 p8 i" F1 [5 Y        error('The input size is not equal to each other!');  L% O+ Q4 v; N1 V# n4 c+ ]$ h, t
        end; d; W- t5 C6 c7 U7 z, B
        D = X-Y;3 H3 |/ I/ ]* d( w, e' |) [
    end
      O3 A( A; [  t. z3 H% v; LMSE = sum(D(: ).*D(: ))/prod(size(X));
    ( V* a3 }9 D# l% p) G/ Z: p4 [PSNR = 10*log10(255^2/MSE);
    , g* L7 b3 t# @& S用这个算法算下吧,I为原图 I1为加噪图像/ s1 x2 D& g8 H; U- S% r
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-28 00:10 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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