Rで解析:オリジナルのカラーパレットを作りませんか?「RImagePalette」パッケージ


画像からカラーパレットを作成するパッケージの紹介です。カラーパレットでお気に入りが見つからない場合に使用してはいかがでしょうか。ちょっと古いパッケージですが最新のRでも動作します。実行コマンドでは最下部に「画像とカラーパレットをggplot2で表示」するコマンド例を紹介しています。

例ではJPEGファイルを読み込んでいます。他画像ファイル、例えばPNGファイルであれば「png」パッケージをインストール後に実行コマンドの「readJPEG」コマンドを「readPNG」コマンドに変えて利用ください。

パッケージバージョンは0.1.1。実行コマンドはwindows 11のR version 4.1.2で確認しています。

パッケージのインストール

下記、コマンドを実行してください。

#パッケージのインストール
install.packages("RImagePalette")

実行コマンド

詳細はコメント、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("RImagePalette")
library("tcltk")
#jpegパッケージがなければインストール
if(!require("jpeg", quietly = TRUE)){
  install.packages("jpeg");require("jpeg")
}
#cowplotパッケージがなければインストール
if(!require("cowplot", quietly = TRUE)){
  install.packages("cowplot");require("cowplot")
}
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}

#jpegファイルの読み込み:「jpeg」パッケージのreadJPEGコマンドを使用
Image <- readJPEG(paste0(as.character(tkgetOpenFile(title = "画像を選択",
                                                    filetypes = '{"画像ファイル" {".jeg"}}',
                                                    initialfile = "*.*"))))

#画像ファイルの表示:display_imageコマンド
display_image(Image)

#画像ファイルからカラーパレットを作成:image_paletteコマンド
#カラーコードの抽出数:nオプション
#選択するカラーコードの種類:choiceオプション;median,min,maxの設定が可能
GetCol <- image_palette(Image, n = 10, choice = median)

#取得したカラーコードからカラーパレットを作成:display_paletteコマンド
display_palette(GetCol)

###おまけ:画像とカラーパレットをggplot2で表示#####
###画像を読み込み「image_palette」コマンド実行後に実行してください
#画像部分を準備
ggplot(data.frame(x = 0, y = 0), aes(x, y)) +
  annotation_raster(Image, -Inf, Inf, -Inf, Inf) +
  theme_void() -> ImagePlot
#カラーパレット部分を準備
ColData <- tibble(ColCode = factor(GetCol, levels = GetCol))
ggplot(ColData, aes(x = ColCode, fill = ColCode, label = ColCode)) +
  geom_bar() + geom_text(y = .5, angle = 90, color = "red", size = 10) + 
  scale_fill_manual(values = levels(ColData$ColCode),
                    guide = "none") +
  theme_void() -> ColPallet
#まとめてプロット       
plot_grid(ImagePlot, ColPallet, labels = NULL,
          ncol = 1, align = "v")
########

出力例

・display_imageコマンド【カルフォルニアに行った時のどこかです】

・display_paletteコマンド

・おまけ:画像とカラーパレットをggplot2で表示

・おまけ:このような写真からもカラーパレットが作れます。

・「クロレラ」カラーパレット


少しでも、あなたの解析が楽になりますように!!

スポンサードリンク

スポンサードリンク