找回密码
 注册
查看: 296|回复: 2
打印 上一主题 下一主题

PSNR计算

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    im1=imread('lena2.bmp');
      H% D6 V* x- ]8 h%im1=im2double(im1);
    - N, n  D7 @' Y) u+ w8 sim2=imread('lena_rbhv.bmp');& `% F# H) p" O: |' {
    %im2=im2double(im2);
    2 [0 Z. S+ ?! e5 A  C- l/ b3 \% u   , x5 w0 S4 [4 V: u
    if (size(im1))~=(size(im2)). E4 |0 c; i! p7 F3 T9 u6 P
        error('错误:两个输入图象的大小不一致');: k8 ~4 C3 x: [( a0 b( s
    end
    9 |' J% R2 }6 y7 |6 D9 ^
    4 I  b" m( u9 z! L; R: o0 p7 R7 a    [m,n] = size(im1);7 d7 }, I  L$ t( \$ N+ t
        A = double(im1);
    , h1 A3 e" k8 O- B% x; N    B = double(im2);8 A5 o8 u; T+ D# Q' Q1 c
        D = sum( sum( (A-B).^2 ) );%||A-B||^2
    - U. ~5 n4 z6 y3 f8 d; G( T    MSE = D / (m * n);) ?) i' }* w& h! T: y0 p
    if  D == 0/ z. ~! K" i0 q. N7 g% f- z2 |+ U+ ~
        error('两幅图像完全一样');
    / n0 D5 u, o, j2 _    PSNR = 200;! v* A% K+ V# o. z
    else$ z+ W* ^/ I) b4 ~5 \
        PSNR = 10*log10( (255^2) / MSE );                                                        " W1 n. M- x4 Z9 e: @: O
    end. D7 Q2 D4 W# Q2 J# \
    ( H- |4 I; p" x) z

    3 E8 k5 p$ I0 c# j从网上COPY了下 稍微改了下  我不知道这一行为什么出错  请指教
    2 i4 L2 m3 q* `2 v! C. F; g2 O3 Q1 I??? Subscript indices must either be real positive integers or logicals.
    . I8 ~! M# b! X! j8 t3 y9 x5 _: T
    Error in ==> PSNR_ERRO at 148 f* I) n+ w  ~7 P/ I
        D = sum( sum( (A-B).^2 ) );%||A-B||^2& w/ s0 v7 [& q  _  d
  • 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()% o3 w  L; W9 {' |! e8 t
    clc; close all;
    : S5 i1 @0 h- zI=imread('cameraman.tif'); %用的是原图
    . D9 b2 j4 p. j  K; pI1=imnoise(I,'gaussian',0,0.01);" D0 q; T4 o4 w+ P6 h+ S* B
    figure;" D& J$ F1 d- X
    subplot(1, 2, 1); imshow(I); title('原图像');" S- W% Q) [  b
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');3 w: l$ K; l( g' |; M
    [PSNR, MSE] = psnr(I, I1)0 G1 R+ ~" ?; a5 j) I' F, c
    % 图像峰值信噪比PSNR、均方根误差MSE
    + N8 ]3 ]7 T% L2 q6 d1 {, afunction [PSNR, MSE] = psnr(X, Y)
    , Q$ z$ U7 ]. Y; d% 计算峰值信噪比PSNR、均方根误差MSE3 v% ]( |: m( d) p# e
    % 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    . _% ]* g0 N! f% q0 Q9 C
    % ~% H' |& O6 T% ]0 [) N  H8 aif nargin<2
    * l- W% m( ]( K4 S' n    D = X;* ?- i1 V8 x2 [# Y8 P9 b2 G
    else2 {2 I! Y! L' W+ ^& O* B% O
        if any(size(X)~=size(Y))
    4 V8 `  P" D9 G% B6 s& l! R        error('The input size is not equal to each other!');
    9 I2 {5 O# G& J0 z( _    end
    6 t/ q3 c  T5 ?3 j) W    D = X-Y;% h$ ?" D- T* s9 J5 Q& ^
    end# h5 S7 b# I0 c' i) Q$ V( N
    MSE = sum(D(: ).*D(: ))/prod(size(X));0 k  n/ ]. [2 a3 z: q4 m+ U# `
    PSNR = 10*log10(255^2/MSE);0 P$ }/ I2 H2 m% U8 Z: c
    function main(): S0 `4 X8 D. F6 z+ N9 l
    clc; close all;
    ! ?! T% d. @$ ]9 e0 qI=imread('cameraman.tif'); %用的是原图2 P/ N7 K% S& l0 ~, B  a: U4 V5 E: Z
    I1=imnoise(I,'gaussian',0,0.01);% r1 @. G; B) `6 T! `- n: b
    figure;
    ! s4 `3 L( L, \$ Asubplot(1, 2, 1); imshow(I); title('原图像');. n' r9 X3 K- b
    subplot(1, 2, 2); imshow(I1); title('加噪声图像');. W8 u2 r  {4 S
    [PSNR, MSE] = psnr(I, I1)
    ( m" N, R( n/ U% 图像峰值信噪比PSNR、均方根误差MSE; _4 p% j; u, W: K2 M
    function [PSNR, MSE] = psnr(X, Y)5 Z  U8 w6 E  ~# c( `/ ~* g- a
    % 计算峰值信噪比PSNR、均方根误差MSE- }6 r% U- B0 r5 A6 g# _* I9 @
    % 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
    + K, E4 \5 J$ Y4 V2 @5 S3 e1 ~
    ( z( V9 \& J+ k* Z6 r; F6 y$ lif nargin<2
    $ f" [8 J7 }" H) k9 V& |6 r    D = X;# |/ u9 Q$ }* |9 K+ z
    else8 _- W4 U0 I8 F/ O$ o# O( ~. m/ K
        if any(size(X)~=size(Y))" Q# T. _+ D' I* L2 A! k
            error('The input size is not equal to each other!');
    " u& ^3 r, b, J    end  L  Y- D- ^* K' M
        D = X-Y;
    7 c: g1 e. O6 `7 D' @end5 o+ H" m9 u0 Z' N" a. W
    MSE = sum(D(: ).*D(: ))/prod(size(X));
    ; F6 N( c, u0 \" VPSNR = 10*log10(255^2/MSE);6 S4 t; O1 M$ z+ n6 C$ z$ W* I
    用这个算法算下吧,I为原图 I1为加噪图像
    3 G+ X0 B- ?4 Y' b, d' y4 H, n. H
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-5-24 07:21 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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