2016-06-29 8 views
0

私は色の分類に取り組んでいます。正と負の角度で入力していますが、角度もRGBの色を表しています。角度が負または255を超える場合、負の値を0または255〜255を超える角度に変更するにはどうすればよいですか?行列には角度のリストが含まれています。各リストはRGBを表します。 は、私はここでコードの一部を掲載しています:マトリックスに存在するリストの特定の値を変更する方法

library(rgl) 

som <- function() 
{ 
    rad2deg = function(rad) 
    { 
    return((180 * rad)/pi) 
    } 

    n <- 3 
    m <- 30 
    l <- 15 
    alpha <- .09 

    a <- list("numeric", n) 
    wij <- matrix(list(), nrow = m, ncol = m) 

    #Initailize the weight matrix 
    for(x1 in 1:m) 
    { 
    for(x2 in 1:m) 
    { 
     a <- runif((n-1), -pi/12, pi/12) 
     a<- rad2deg(a) 
     a <- c(a*8+128,255) 
     wij[[x1,x2]] <- a 
    } 
    } 

    s <- runif((n-1), -pi/12, pi/12) 

    theta <- rad2deg(s[1]) 
    theta <- 128+theta*8 

    phi <- rad2deg(s[2]) 
    phi <- 128+phi*8 

    x <- as.integer(l* sin(s[1]) + m/2) 
    y <- as.integer(l*sin(s[2]) + m/2) 

    for(x1 in 1:m) 
    { 
    for(x2 in 1:m) 
     wij[[x1,x2]] <- wij[[x1,x2]] +((x1-x)+(x2-y))*alpha*(wij[[x1,x2]]-c(theta,phi,255)) 
    } 

    for(x1 in 1:m) 
    { 
    for(x2 in 1:m) 
     rgl.spheres(x=x1, y=x2, col=rgb(t(wij[[x1,x2]]), maxColorValue =   255), radius = 1) 
    } 
}  

som() 

を私は次のエラーを取得しています:

  1. RGBでエラーが発生しました(T(WIJ [[X1、X2]])、maxColorValue = 255):色強度259ではなく0で:RGB IN 255
  2. エラー、maxColorValue = 255)([X1、X2] WIJ T():色強度-5、0でない場合に:255

RGBで255以上の値を表現する方法はありますか?

答えて

0

あなたは0から255までの番号を生成するために

get_valid_number <- function(number) {pmax(0,pmin(255,number))}

を使用することができます。

numbers <- c(-5, 42, 259) get_valid_number(numbers)

[1] 0 42 255

関連する問題