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

Rの解析に役に立つ記事
スポンサーリンク

画像からカラーパレットを作成するパッケージの紹介です。カラーパレットでお気に入りが見つからない場合に使用してはいかがでしょうか。ちょっと古いパッケージですが最新の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 = "&#30011;&#20687;&#12434;&#36984;&#25246;",
                                                    filetypes = '{"&#30011;&#20687;&#12501;&#12449;&#12452;&#12523;" {".jeg"}}',
                                                    initialfile = "*.*"))))

#&#30011;&#20687;&#12501;&#12449;&#12452;&#12523;&#12398;&#34920;&#31034;:display_image&#12467;&#12510;&#12531;&#12489;
display_image(Image)

#&#30011;&#20687;&#12501;&#12449;&#12452;&#12523;&#12363;&#12425;&#12459;&#12521;&#12540;&#12497;&#12524;&#12483;&#12488;&#12434;&#20316;&#25104;:image_palette&#12467;&#12510;&#12531;&#12489;
#&#12459;&#12521;&#12540;&#12467;&#12540;&#12489;&#12398;&#25277;&#20986;&#25968;:n&#12458;&#12503;&#12471;&#12519;&#12531;
#&#36984;&#25246;&#12377;&#12427;&#12459;&#12521;&#12540;&#12467;&#12540;&#12489;&#12398;&#31278;&#39006;:choice&#12458;&#12503;&#12471;&#12519;&#12531;;median,min,max&#12398;&#35373;&#23450;&#12364;&#21487;&#33021;
GetCol <- image_palette(Image, n = 10, choice = median)

#&#21462;&#24471;&#12375;&#12383;&#12459;&#12521;&#12540;&#12467;&#12540;&#12489;&#12363;&#12425;&#12459;&#12521;&#12540;&#12497;&#12524;&#12483;&#12488;&#12434;&#20316;&#25104;:display_palette&#12467;&#12510;&#12531;&#12489;
display_palette(GetCol)

###&#12362;&#12414;&#12369;:&#30011;&#20687;&#12392;&#12459;&#12521;&#12540;&#12497;&#12524;&#12483;&#12488;&#12434;ggplot2&#12391;&#34920;&#31034;#####
###&#30011;&#20687;&#12434;&#35501;&#12415;&#36796;&#12415;&#12300;image_palette&#12301;&#12467;&#12510;&#12531;&#12489;&#23455;&#34892;&#24460;&#12395;&#23455;&#34892;&#12375;&#12390;&#12367;&#12384;&#12373;&#12356;
#&#30011;&#20687;&#37096;&#20998;&#12434;&#28310;&#20633;
ggplot(data.frame(x = 0, y = 0), aes(x, y)) +
  annotation_raster(Image, -Inf, Inf, -Inf, Inf) +
  theme_void() -> ImagePlot
#&#12459;&#12521;&#12540;&#12497;&#12524;&#12483;&#12488;&#37096;&#20998;&#12434;&#28310;&#20633;
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
#&#12414;&#12392;&#12417;&#12390;&#12503;&#12525;&#12483;&#12488;       
plot_grid(ImagePlot, ColPallet, labels = NULL,
          ncol = 1, align = "v")
########

出力例

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

・display_paletteコマンド

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

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

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


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

タイトルとURLをコピーしました