Rで集中線を描く

写真から顔を検出したら集中線を描くのが紳士のたしなみ。
以下のアルゴリズムを参考にRでタカヤナギ=サンに集中線を描きます。
http://stamefusa.hateblo.jp/entry/20120115/1326636719
顔領域の検出については以前の記事を参考のこと。

ひとまずこんな感じになります。
まだ集中線とは言い難いのでここからいい感じのパラメータを探したい。

library("imager")
library("httr")
MS_FACE_KEY <- "あなたのスクリプトキー"

### 顔領域の検出
url_image <- "https://raw.githubusercontent.com/dichika/ojisan/master/takayanagi_dj.jpg" # タカヤナギ=サン
data_image <- load.image(url_image)
tmp <- tempfile(fileext = ".png")
save.image(data_image, tmp)
url_base <- "https://westus.api.cognitive.microsoft.com/face/v1.0/detect"
result <- POST(url_base, 
               body = upload_file(tmp), 
               query = list(returnFaceAttributes="age,gender,headPose,smile,facialHair,glasses,emotion", 
                            language="en"), 
               add_headers(.headers = c(`Content-Type`="application/octet-stream", 
                                        `Ocp-Apim-Subscription-Key`= MS_FACE_KEY
               )
               )
) %>% content()

### 検出された顔領域のデータを抽出して中心点を求める
bbox <- lapply(result, function(x)x$faceRectangle)
center <- data.frame(x = bbox[[1]]$left + bbox[[1]]$width * 0.5,
                     y = bbox[[1]]$top + bbox[[1]]$height * 0.5)

### 集中線の描画
line_width <- 10 # 線の幅
move <- line_width * 3 # 集中線の間隔

plot(data_image, axes = FALSE)

# 画像上下からの集中線
for(point_y in c(0, height(data_image))){
  for(point_x in seq(0, width(data_image), by = move)){
    p <- runif(1, 0.7, 0.8)
    a <- runif(1, 0.5, 1)
    polygon(x = c(point_x, point_x + line_width, point_x + p*(center$x - point_x)),
            y = c(point_y, point_y, point_y + p*(center$y - point_y)), 
            density = 1000, col = rgb(1, 1, 1, a))
  }
  
}

# 画像左右からの集中線
for(point_x in c(0, width(data_image))){
  for(point_y in seq(0, height(data_image), by = move)){
    p <- runif(1, 0.7, 0.8)
    a <- runif(1, 0.5, 1)
    polygon(x = c(point_x, point_x, point_x + p*(center$x - point_x)),
            y = c(point_y, point_y + line_width, point_y + p*(center$y - point_y)), 
            density = 1000, col = rgb(1, 1, 1, a))
  }
  
}

Enjoy !!