Rでお遊び:jpegとpngファイルから色コードの連続取得とプログレスバー「progress」パッケージ

Rの解析に役に立つ記事

コンソールにプログレスバーを表示することができる「progress」パッケージを紹介します。Rでは処理の状況を示すプログレスバーが標準では表示されません。本パッケージを利用することで、終了時間が予想できるので効率良く時間を使えるのではと思います。

jpegやpngファイルから色コードを取得するのは時間がかかる処理です。
そこで、「フォルダに保存したjpegとpngファイルのLABと色コードを連続取得し、結果をプロットする処理にプログレスバーを組み込んだ」コマンド例と共に紹介します。

パッケージのバージョンは1.0.2です。
コマンドはR version 3.2.0で確認しています。

スポンサーリンク

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

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

ifelse(!require(devtools), install.packages("devtools"), library("devtools"))
install_github("gaborcsardi/progress")

パッケージの基本的な使い方

バージョン1.0.2では”progress_barコマンド”のみが収録されています。使用方法は単純です。詳細はコマンド内を確認してください。

#パッケージの読み込み
library("progress")

#繰り返し回数
n <- 1000

#プログレスバーの設定
#formatオプションの説明&quot;:eta&quot;は残り時間,&quot;:elapsed&quot;は経過時間,&quot;:percent&quot;はパーセント
#その他のオプションはヘルプを確認してください
pb <- progress_bar$new(format = &quot;  処理状況 &#91;:bar&#93; :percent eta: :elapsed&quot;,
                       total = n, clear = FALSE, width= 60)

#実行するとコンソールに表示されます。
for (i in seq(n)) {
 
   pb$tick()
   Sys.sleep(1 / 100)

   }
&#91;/code&#93;

<表示例>
<a href="https://www.karada-good.net/wp/wp-content/uploads/2015/06/68d7e9f9375aa8cec3713d2b30523108.png"><img src="https://www.karada-good.net/wp/wp-content/uploads/2015/06/68d7e9f9375aa8cec3713d2b30523108-320x25.png" alt="スクリーンショット 2015-06-06 16.37.37" width="320" height="25" class="aligncenter size-medium wp-image-3172" /></a>
<hr/>

<h2>使用例のコマンド</h2>
使用した画像ファイルは、読んで大感動した新川 直司(著)「四月は君の嘘」全11巻の表紙画像です。画像はAmazonで表示される内容を利用しています。非常におすすめです。週末にいかがでしょうか。

<iframe src="https://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&nou=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=chalumao-22&o=9&p=8&l=as1&m=amazon&f=ifr&ref=qf_sp_asin_til&asins=B00AF5PJOM" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>

保存フォルダ名とファイル名は英数字で処理を確認しています。また、ファイル名に"001"、"002"などの連番を先頭または末尾に追加すると、画像ファイルが正確に昇順で処理されます。ファイルが読み込まれた順番は"ItemList変数"を実行して確認してください。詳細はコマンド内のコメントを確認してください。

なお、画像ファイルが多いと非常に時間がかかりますのでご注意ください。取得した色コードは参考情報として認識いただければと思います。

・コマンドでは"png"、"jpeg"、"colorspace”パッケージを利用しています。インストールされていない場合は下記コマンドを実行してください。

#パッケージのインストール
install.packages(c(&quot;png&quot;, &quot;jpeg&quot;, &quot;colorspace&quot;))

<jpeg,pngファイルからカラーコードを取得するコマンド例>

#パッケージの読み込み
library("tcltk")
library("png")
library("jpeg")
library("progress")
library("colorspace")

#読み込みフォルダを選択
FoldPath

出力例

・検出した全色コードを明度で降順に並び替え、各巻毎にプロットした例
ALL

・検出した全色コードを補色次元:aで降順に並び替え、各巻毎にプロットした例
aPlot

・各巻で出現数がTOP15の色コードを降順にプロットした例
TOP15


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

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