Rで解析:画像のカラーコードを取得する方法!「EBImage」パッケージの紹介

画像で使用されているカラーコードの取得には、画像編集ソフトを使用する方法があります。

「Rでお遊び:プレゼン資料の配色に使えるかも?キャラクターの髪の色?」でも、画像をフォトショップで読み込み、スポイトでカラーコードを取得しました。非常に手間がかかる作業です。

そこで、「Rで目的画像内の全ピクセルのカラーコードから、使用量が多いTOP5のカラーコードを取得する方法」を考えました。

紹介するコードでは、Rで画像の加工や情報を取得できる「EBImage」パッケージを使用しています。EBImageパッケージはbioLiteコマンドでbioconductorから簡単にインストールすることができます。

EBImageのバージョンは4.6.0です。

なお、bioconductorはRから利用出来るバイオインフォマティクス解析パッケージを提供しているサイトです。
参考URL:http://www.bioconductor.org/

画像からカラーコードを取得する他のお勧めパッケージ

おすすめのパッケージです。

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

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

source("http://bioconductor.org/biocLite.R")
biocLite("EBImage")

実行コマンドの紹介

画像ファイルをダイアログで選択できるようにtcltkパッケージを利用しています。
今回の画像は「やはり俺の青春ラブコメはまちがっている。続」から「雪ノ下雪乃」の肩から上の画像を利用しています。

参考URL:http://www.tbs.co.jp/anime/oregairu/

personal02

使用画像です。

なお、Mac mini(Late 2012)、メモリ16GBの環境で2000×1260ピクセルの処理は約1分ほどです。

library("EBImage")
#Imageファイルの読み込み
selectAImage <- paste(as.character(tkgetOpenFile(title = "Image&#12434;&#36984;&#25246;",filetypes = '{"Image&#12501;&#12449;&#12452;&#12523;" {".*"}}',initialfile = "*.*")), sep = "", collapse =" ")
Image <- readImage(selectAImage, mode = "x11")

#&#35501;&#12415;&#36796;&#12435;&#12384;Image&#12434;&#12502;&#12521;&#12454;&#12470;&#12391;&#34920;&#31034;
display(Image)

#Image&#12363;&#12425;&#12459;&#12521;&#12540;&#12467;&#12540;&#12489;&#12434;&#21462;&#24471;
#&#12500;&#12463;&#12475;&#12523;&#25968;&#12364;&#22810;&#12356;Image&#12411;&#12393;&#12513;&#12514;&#12522;&#12364;&#24517;&#35201;&#12391;&#12377;
ColCode <- channel(Image, mode = "x11")

#2000&times;1260&#12500;&#12463;&#12475;&#12523;&#12398;&#20966;&#29702;&#12391;&#31169;&#12398;&#29872;&#22659;&#12391;&#32004;1&#20998;&#12411;&#12393;&#12363;&#12363;&#12426;&#12414;&#12375;&#12383;&#12290;
CountColor <- sort(table(ColCode), decreasing = TRUE)

#&#29305;&#23450;&#12398;&#33394;&#12434;&#21066;&#38500;&#12290;&#20170;&#22238;&#12399;&#30333;&#33394;&#12434;&#21066;&#38500;
CountColor <- CountColor[names(CountColor) != "#FFFFFF"]

#&#26908;&#30693;&#25968;TOP5&#12434;&#34920;&#31034;
SelectCol <- 5
head(CountColor, SelectCol)

ColCode
#FAE7D8 #DBD5D4 #CFC8C8 #333335 #5C6062
3422     954     810     779     712 

pie(rep(1, SelectCol),
    labels = names(head(CountColor, SelectCol)),
    col = names(head(CountColor, SelectCol)))

出力

雪ノ下雪乃

画像処理コマンドの紹介

EBImageパッケージでは画像の明度、コントラスト、ガンマ値、カラーモードの変更、クリッピング、回転などが可能です。

#&#12362;&#12414;&#12369;
#&#26126;&#24230;&#12399;&#12300;+&#12301;&#12414;&#12383;&#12399;&#12300;-&#12301;&#12391;&#25351;&#23450;&#12375;&#12414;&#12377;
#&#26126;&#12427;&#12367;
Image1 <- Image + 0.4
display(Image1)
#&#26263;&#12367;
Image2 <- Image - 0.4
display(Image2)

#&#12467;&#12531;&#12488;&#12521;&#12473;&#12488;&#12399;&#12300;*&#12301;&#12391;&#25351;&#23450;&#12375;&#12414;&#12377;
#&#26126;&#12427;&#12367;
Image3 <- Image * 1.3
display(Image3)
#&#26263;&#12367;
Image4 <- Image * 0.7
display(Image4)

#&#12460;&#12531;&#12510;&#20516;&#12399;&#12300;^&#12301;&#12391;&#25351;&#23450;&#12375;&#12414;&#12377;
#&#39640;&#12356;
Image5 <- Image ^ 1.3
display(Image5)
#&#20302;&#12356;
Image6 <- Image ^ 0.7
display(Image6)

#&#12463;&#12522;&#12483;&#12500;&#12531;&#12464;&#12418;&#12391;&#12365;&#12414;&#12377;&#12290;&#31684;&#22258;&#12399;display&#12467;&#12510;&#12531;&#12489;&#12391;&#30011;&#20687;&#12434;&#34920;&#31034;&#12375;&#12390;&#24231;&#27161;&#12434;&#21462;&#24471;&#12377;&#12427;&#12392;&#20415;&#21033;&#12391;&#12377;
#&#25351;&#23450;&#12399;[x&#36600;&#12398;&#31684;&#22258;&#65288;&#24133;&#65289;, y&#36600;&#12398;&#31684;&#22258;&#65288;&#39640;&#12373;&#65289;,]&#12391;&#12377;
display(Image[39:159, 87:122,])

#&#22238;&#36578;&#12418;&#21487;&#33021;&#12391;&#12377;
#translate(rotate(Image, &#12300;+&#12301;&#12414;&#12383;&#12399;&#12300;-&#12301;&#12391;&#22238;&#36578;), &#22238;&#36578;&#12398;&#21407;&#28857;&#65289;&#12391;&#12377;
display(translate(rotate(Image, -45), c(0, 0)))

#&#12459;&#12521;&#12540;&#12481;&#12515;&#12531;&#12493;&#12523;&#12418;&#22793;&#26356;&#12391;&#12365;&#12414;&#12377;
colorMode(Image) <- Grayscale
display(Image)

#&#12459;&#12521;&#12540;&#12395;&#12418;&#31777;&#21336;&#12395;&#25147;&#12379;&#12414;&#12377;
colorMode(Image) <- Color

出力

名称未設定-1

少しでも、あなたのウェブや実験の解析が楽になりますように!!

Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.
タイトルとURLをコピーしました