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

PSNR计算

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    im1=imread('lena2.bmp');
    / E- n6 n1 o$ w4 C6 e8 v' e5 z& O%im1=im2double(im1);4 ]! k) Z9 C, V. j# J% S2 F
    im2=imread('lena_rbhv.bmp');
    ; j. b3 v, N1 k3 q9 L. g%im2=im2double(im2);7 c' \- K+ n( C0 _: ?* i6 I( ?2 P) J
       
    3 {# P8 s* A# v6 k% S1 K! Yif (size(im1))~=(size(im2))  P& [4 D% {' z6 j  A
        error('错误:两个输入图象的大小不一致');
    6 s) T; n5 P( n" M& E9 o: Gend
    4 G% Q, A' s0 ^
    + }( U, \/ V) G/ O    [m,n] = size(im1);, j% E: Z5 O8 T) g3 j+ F
        A = double(im1);
    2 H9 l3 X( R  X  x4 [1 k' G    B = double(im2);/ D! o; z* r& g2 m& q! \/ H# P
        D = sum( sum( (A-B).^2 ) );%||A-B||^2, g* q5 I. {- Q( m
        MSE = D / (m * n);) O8 V1 l0 L+ |5 I( x/ E3 x" ?7 ?6 d
    if  D == 0
    . ^7 x3 G, q* g$ ^    error('两幅图像完全一样');
    ! H) D1 X3 X, V$ L3 r2 n6 f3 j    PSNR = 200;0 k/ b4 i  I+ g& R+ y. u( @
    else5 G# V1 H& g" f* t0 C5 A
        PSNR = 10*log10( (255^2) / MSE );                                                        ) _3 E" I8 g! E
    end- b1 s) V& J* A0 y! r2 H
    ! a0 [! B+ J) q, E8 t& w1 o) t0 \
    ( V" E3 }3 y% n% s$ Z& o
    从网上COPY了下 稍微改了下  我不知道这一行为什么出错  请指教* e3 D$ [" [, F. X( }; u
    ??? Subscript indices must either be real positive integers or logicals.
    / X7 I5 G) I& a7 A: J1 N  \. P, b6 X; W2 m5 p) F% O  r9 W
    Error in ==> PSNR_ERRO at 14
    6 q9 U5 U. j( F7 s+ x: _" _! y' l    D = sum( sum( (A-B).^2 ) );%||A-B||^23 b" f/ r" X. |
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-11-22 15:08 | 只看该作者
    function main()
    ! Y' K' `* C6 O9 }clc; close all;3 h1 b5 M# W( V+ B6 f
    I=imread('cameraman.tif'); %用的是原图' d$ ^/ U4 g$ \; i( D) t8 p
    I1=imnoise(I,'gaussian',0,0.01);5 `! k& @; n1 M( S% Y3 f+ ^, e  d. [
    figure;
    ' {9 l  D/ t, _subplot(1, 2, 1); imshow(I); title('原图像');4 Q5 s! r" r/ ~  j4 E1 D! x/ `
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');
    6 f# x- q2 p4 E* ?[PSNR, MSE] = psnr(I, I1)- r# G) s1 w- s  l7 k1 V
    % 图像峰值信噪比PSNR、均方根误差MSE6 @7 T. a9 h3 Y
    function [PSNR, MSE] = psnr(X, Y)
    - a3 b* H5 L$ e, C" T% ^% 计算峰值信噪比PSNR、均方根误差MSE
    - L: ~, K/ B1 I& \& s% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    ' Q4 y  U  }- r; r2 ]8 f
    / e0 v2 M5 ]0 t* ?if nargin<2" `6 ~% W, ~  }$ s* J2 D
        D = X;. U: k4 X* C) z; I5 j8 ?. P
    else* U, z7 u# f# q
        if any(size(X)~=size(Y))
      Q" u8 J2 k0 Q6 A  O% T        error('The input size is not equal to each other!');9 \- D  |, v8 X  a
        end
    ! X8 |' V: e8 W- j8 _/ u    D = X-Y;
    8 f' i3 {* s  ^# h/ H' a$ Send
    ( u. Z4 L% t" n: [# LMSE = sum(D(: ).*D(: ))/prod(size(X));8 Q& K% r) j% j8 Z
    PSNR = 10*log10(255^2/MSE);
    ) ~1 p% p. T/ O; jfunction main()
    + v/ r9 r( e2 G6 k0 I! U! a7 v9 ^, G7 @clc; close all;
    " x. x0 Q8 W& A8 EI=imread('cameraman.tif'); %用的是原图
    8 M  Q7 {4 [" S5 W5 Q$ {, RI1=imnoise(I,'gaussian',0,0.01);
    % W- t7 Y* Y# [0 B" d2 ifigure;: N/ {) g1 M  p7 M
    subplot(1, 2, 1); imshow(I); title('原图像');
    8 E" Z3 Y3 f) b$ C' E) J+ `# i7 [" msubplot(1, 2, 2); imshow(I1); title('加噪声图像');
    # a/ W* O$ `, [( P2 A0 `[PSNR, MSE] = psnr(I, I1)
    8 @5 \. C5 M( O* @6 s% 图像峰值信噪比PSNR、均方根误差MSE
    / |7 l( C+ L9 y( g( Ufunction [PSNR, MSE] = psnr(X, Y); v2 E# z  C4 j' H1 C4 [
    % 计算峰值信噪比PSNR、均方根误差MSE
    % z2 h" j9 \1 a% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE& E! ^3 x. z( F, w
    8 I; O7 Q9 z% v: `$ s! C
    if nargin<2
    ( @6 u- \6 v) J) g/ E1 A7 \    D = X;
    ( u. ]# c  i( m% pelse8 i8 Z2 \( ~- K7 L
        if any(size(X)~=size(Y))9 d" ]; C- \; V
            error('The input size is not equal to each other!');; T8 d+ A9 v' h
        end
    4 b! p, f3 z& \5 X8 T  i  v    D = X-Y;8 {0 U5 ]; o4 y, B0 J) T  B
    end; d# v! \) F2 ~+ `9 F
    MSE = sum(D(: ).*D(: ))/prod(size(X));0 J8 V% U. {+ d3 L
    PSNR = 10*log10(255^2/MSE);
    3 }! W( S$ t4 q' H# d用这个算法算下吧,I为原图 I1为加噪图像2 D9 o( m7 ]6 v  F' |1 @8 Z
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2022-11-22 14:58 | 只看该作者
    D = sum( sum( (A-B).^2 ) );指的是什么,为什么有两从sum?
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-23 15:31 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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