R/gw_weight_ad.R

Defines functions gw.weight

gw.weight<- function(vdist,bw){

  if (is.matrix(vdist)){
    nr <- nrow(vdist)
    dn <- bw/nr
    if(dn<=1)
    {
      rnk<-apply(vdist,2,rank,ties.method='first')
      bw<- vdist[rnk==bw]
    }
    else
    {
      bw <- dn*apply(vdist,2,max)
    }
    if(length(bw)>0)
      wgt<- exp(vdist^2 / (-2 * bw^2))
    else
      wgt <- diag(1, dim(vdist)[1], dim(vdist)[2])
  }else{
    nr <- length(vdist)
    dn <- bw/nr
    if(dn<=1)
    {
      rnk<-rank(vdist,ties.method='first')
      cond<- which(rnk <= bw)
      bw<- vdist[rnk==bw]
    }
    else
    {
      bw <- dn*max(vdist)
    }
      wgt<- exp(vdist^2 / (-2 * bw^2))
  wgt
  }
}

Try the SSIMmap package in your browser

Any scripts or data that you put into this service are public.

SSIMmap documentation built on Sept. 27, 2023, 1:07 a.m.