Rでできる
ゼロから作るRAW現像

Tokyo.R #79

@igjit

@igjit

最近こんな本を買いました

https://moiz.booth.pm/items/1307327

PythonとColabでできる - ゼロから作るRAW現像

ところでRAW現像とは

デジカメは一般的にJPEG形式で画像を保存する

それに対してカメラの光センサーの情報をそのまま保存したものがRAWデータ

RAWデータから画像を生成するのがRAW現像

JPEGよりも情報量が多いので柔軟に編集できる

カメラ画像処理について

画像処理パイプライン

えっ?

パイプライン?

Rでやれば良いのでは

やってみた

https://igjit.github.io/camera-raw-processing-r/

インストール

Rでできる、と言いつつRAW画像の読み込みにPythonを使う

面倒くさい

Docker imageを作った

https://hub.docker.com/r/igjit/r-raw-processing

docker pullして実行すると

docker pull igjit/r-raw-processing
docker run --rm -p 8787:8787 -e PASSWORD=xxxx igjit/r-raw-processing

RStudioでRAW現像できる

あそびかた

原著者のGitHubリポジトリからRAWデータをダウンロード

wget https://github.com/moizumi99/camera_raw_processing/raw/master/chart.jpg

画像データをRの行列に読み込みこんで

library(reticulate)
library(imager)

rawpy <- import("rawpy")

raw_file <- "chart.jpg"
raw <- rawpy$imread(raw_file)
raw_array <- raw$raw_image

パイプで処理をつなぐ

無加工で表示

raw_array %>% t %>% as.cimg %>% plot

デモザイクして表示

raw_array %>%
  simple_demosaic %>%
  ta %>% as.cimg %>% plot

ホワイトバランス補正、デモザイクして表示

raw_array %>%
  white_balance(raw$camera_whitebalance, raw$raw_colors) %>%
  simple_demosaic %>%
  normalize %>%
  ta %>% as.cimg %>% plot

楽しい!

demo

今後の更新にご期待下さい

https://igjit.github.io/camera-raw-processing-r/

ここをクリック↓

https://github.com/igjit/camera-raw-processing-r

まとめ

Rは統計専用の言語ではない。

RでRAW現像できる。

RでRAW現像すると楽しい。

  • ベクトル演算
  • %>%
  • NSE

あなたはRで何を作る?

Enjoy!