画像処理プログラミングの開発環境について

  • 2020.05.10 Sunday
  • 08:47

 画像処理のプログラミングには、コンパイラー(compiler)やエディター(editer)、ビューアー(viewer)などの開発環境というものが必要になります。ここでは、そのプログラミングのために必要な開発環境について紹介します。新入社員や学生でもお金をかけずにプログラミングを習得出来ることを目的としているため、Windows10から利用できるようになったLinux向けのバイナリープログラムをそのまま実行できるWSLWindows Subsystem for Linux+ Ubuntu(Linux) + VcXsrv(X Server)を用いて、WindowsOSLinuxライクな環境をインストールして構築しています。WSL環境が便利な点としては、WindowsLinuxをシームレスに操作することが出来るため、どちらのプログラムを実行出来ることにあります。WindowsLinuxをシームレスに操作できるという意味では、Cygwinも同様なことは可能なのですが、150GB以上のディスク領域や9時間以上のインストール時間などインストールのハードルが高いことから、本書では、WSL(ディスク量料は1.6GB程度)を選択しています。ただ、WSLWindows10からサポートされた機能なので、Windows832bit版には対応していません。それらのOSの場合はWSLの代わりにCygwinをインストールしてください。(私自身はCygwin10年以上使っています。)同様のことはLinuxMacの開発環境でも可能なので、一度覚えておけば、それらも直ぐに使えるようになると思います。

 WSLWindows Subsystem for Linux+ Ubuntu(Linux) + VcXsrv(X Server)の開発環境に、gccというフリーのCのコンパイラーやImageMagick画像を操作したり表示したりするためのソフトウェア)、dcraw(現像ソフト)、ffmpegmpegのエンコーダー、デコーダー)をインストールして、プログラムのコンパイルや各種フォーマット変換などをおこなっています。

 また、UTF-8に対応したテキストエディターを使ってプログラムを記述していますが、将来的にVisual Studioを使ってプログラミングをしたい方は、無償版(https://visualstudio.microsoft.com/ja/)もありますのでそちらを使われてもいいかも知れません。私はVisual Studioを使っていますが、CC++のデバッグやコードの記述に関しては最強で、WindowsWSL(またはCygwin + Visual Studioが、OpenCVCUDANVIDIAGPUの開発環境)、DirectXなどもインストール出来るので、画像処理関係では最強の開発環境だと思っています。

 なお、ImageMagickなどは、多数の脆弱性が報告されています。フリーなのでリスクを承知してご利用ください。フリーソフトは、使用者の責任の上で(At Your Own Risk!)使うことになるわけです。よって、フリーソフトを使用して何か障害が起きたとしても、作成者や著作権保持者が責任を負うようなことにはなりません。

 

WSL(Windows Subsystem for Linux)のインストール

  • 2020.05.10 Sunday
  • 10:21

 Windows 10ではLinuxのプログラムを実行可能にする「WSLWindows Subsystem for Linux)」が利用できます。当初、このWSLは実験的なβ版(当時の名称は「Bash on Ubuntu on Windows」)として提供されていましたが、Windows 10 バージョン1709(ビルド16299)以降では正式なOS機能の一つとなっています。現在ではLinuxシステムとの互換性も向上した他、Microsoft Store経由でのインストール、Ubuntu以外のディストリビューションの提供、コマンドプロンプトからWSLのコマンドを呼び出し可能になるなど、機能も向上しています。

 現在Linuxの中でも最もポピュラーなUbuntuを使い、Microsoft StoreUbuntuのディストリビューションではX Serverが入っていないため、Windows用のX Serverの一つである VcXsrvWindows上にインストールすることにより、X ServerX Window System)も使えるようにしています。(X Server ImageMagickdisplayanimateを使うときに必要ですが、displayanimateを使わない場合には、VcXsrvをインストールする必要はありません。)このWSLWindows Subsystem for Linux+ Ubuntu(Linux) + VcXsrv(X Server)の開発環境を以後WSLと呼ぶことにします。

 

ステップ1:Windowsの設定

 WSLをインストールする前に、まずはWindowsの設定の変更やテキストエディターの準備をして置きます。

 Windowsの設定としては、ファイルの拡張子や隠しファイルが非表示だと不便ですので、エクスプローラーからファイルの拡張子と隠しファイルのチェックボックスをにチェックします。

 

1.タスクバーのエクスプローラーを起動します。

 

2.エクスプローラー画面の表示をクリックします。

 

3.「ファイルの拡張子」と「隠しファイル」のチェックボックスをにチェックします。

 

4.ホームなどにある隠しファイルやファイルの拡張子が見えるようになります。

 次にテキストエディターですが、UbuntuではUTF-8の文字コードを使うので、UTF-8に対応したテキストエディターをインストールします。テキストエディターで有名なのは秀丸エディタですが、こちらはシェアウェアーなのでフリーのNoEditorがお勧めです。Ubuntuviemacsなどのテキストエディターも使えますが、慣れるのに時間がかかるため、UTF-8に対応したWindowsのテキストエディターを使った方がいいでしょう。(Windows10からはメモ帳がUTF-8対応になりました。)また、様々な拡張子のファイルを開きやすいようにNoEditorのショートカットアイコンを作って置くと便利です。

 

ステップ2:WSL機能を有効にする

 WSLを利用するには、まず「Windows Subsystem for Linux」という機能を有効にする必要があります。コントロールパネルの「プログラムと機能」グループにある[Windowsの機能の有効化または無効化]画面で「Windows Subsystem for Linux」の機能を有効にします。

 

1.「スタートメニュー」の「設定」画面を開きます。

 

2.「設定」の「アプリと機能」を呼び出します。

 

3.「関連設定」に表示されている「プログラムと機能」をクリックします。

 

4.「Windowsの機能の有効化または無効化」をクリックします。

 

5.「Windows Subsystem for Linux」のチェックボックスをオンにしてインストールします。

 

6.再起動します。

これで、WSL(Windows Subsystem for Linux)が有効になります。

 

ステップ3:Ubuntuのインストール

 WSLを有効化したら、次はMicrosoft Store経由でLinuxパッケージを導入します。この手順は、WSLを利用したいユーザーごとに(パッケージごとに)行います。(WSLではマルチユーザーに対応していないようです。)

 Microsoft Storeで提供されているLinuxのパッケージ(ディストリビューション)としては、次のようなものがあります。それぞれ、ベースとしているディストリビューションが違っていたり、管理用コマンドや設定方法などが異なっていたりするので、慣れているものを選択してください。Linuxにあまりなじみがないなら、比較的ユーザー数が多くて情報を得やすいUbuntuから始めるとよいでしょう。本書ではUbuntuをインストールすることにします。

Ubuntu(複数パッケージあり)

Kali Linux

Debian

SUSE Linux

Fedora Remix for WSL

 

1.「スタートメニュー」の「Microsoft Store」画面を開きます。

 

2.「Microsoft Store」アプリを起動して検索窓に「Linux」と入力し、Linuxのパッケージ(ディストリビューション)を検索します。

 

3.「Ubuntu(バージョン名なし)」を選択します。

 「Ubuntu(バージョン名なし)」は、提供時期に応じて、その時点での最新バージョンに自動的に切り替わるようになっています。(私がインストールした2020.3.7時点ではUbuntu 18.04.4 LTSでした。)互換性の問題などで、特定のバージョンを使いたい場合はバージョン番号付きの方を、そうでない場合は、バージョン番号なしのUbuntuを使った方が良いでしょう。また、Ubuntu以外のLinuxを使いたい場合は、試してみてください。CentOSMicrosoft Storeでは有料なので、GitHubなどからダウンロードしてもいいでしょう。

 

4.[インストール]をクリックしてインストールします。

 

5Ubuntuを起動します。

 

6Ubuntuの最初の起動

 最初に起動したときには、ディストリビューションの内容をユーザーフォルダの下に展開して初期設定する処理が行われるため、しばらく時間がかかります。

 そしてしばらくするとusernameの設定を聞いてきます。

 

7Ubuntuusernamepasswordを設定します。

 sudo ??コマンドを実行した時に“[sudo] password for <ユーザー名>:”のようにpasswordを要求してくることがありますが、その時はこのpasswordを入力してください。

 この設定が終わると、Windows上からは、C:¥Users¥<Windowsユーザー名>¥AppData¥Local¥Packages¥CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc¥LocalState¥rootfs¥home¥<ユーザー名>Ubuntuのホームディレクトリーが作られます。ディレクトリーの階層が深いので、Windowsのデスクトップにショートカットを作っておくと便利なので作っておきます。

8/etc/apt/source.list のリポジトリを日本国内に変更します。

 この変更はしなくてもアップデート出来ますが、国内の方がインストールのスピードが早いの変更しておいた方がお勧めです。

 UNIXが得意な人は、viやemacs、確認にはmoreなどを使っても良いですし、Windowsで行いたい人は、C:¥Users¥<Windowsユーザー名>¥AppData¥Local¥Packages¥CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc¥LocalState¥rootfs¥etc¥aptのsource.listをWindowsのエディターを用いて修正してもいいと思います。ただし、Windows系のエディターでファイルを作ったりコピーしたりしても、Ubuntuのsu(スーパーユーザー)領域では反映されないことがありますのでご注意ください。

 

9.インストールされているソフトウェアの更新をします。

 WindowsでいうWindows UpdateをUbuntuでは手動で行う必要があります。以下のコマンドを定期的に(1週間に1度くらい)実行します。

 アップグレード途中で“Do you want to continue? [Y/n]”と聞かれたら“y” ⏎で続けます。

 以下の画面(パッケージのアップデート中にサービスの再起動が必要な場合のメッセージ)が出たら、

 キーを使って<Yes>を選択して、⏎を押します。

 

10.日本語環境を設定します。

 日本語パックをインストールします。[sudo] password for <ユーザー名>:”のようにpasswordを要求してくるときはpasswordを入力し、Do you want to continue? [Y/n]”と聞かれたら“y” 続けます。

 

11Ubuntuのアイコンを作ります。

 Ubuntuは良く使うので、デスクトップにアイコンを作っておいた方が便利です。「スタート」画面に最近追加されたものが出来ていますから、これをドロップさせてUbuntuのアイコンを作ります。

 下図は、デスクトップに出来たUbuntuのアイコンです。

 

12Ubuntuを立ち上げ、日本語環境になっているか確認します。

 Ubuntuアイコンをダブルクリックして、Ubuntuを起動します。

 「ja_JP.UTF-8」が表示され、dateコマンドのメッセージが日本語になっていれば設定成功です。

 

13.日本語マニュアルをインストールします。

 マニュアルを確認します。ページ送りはEnterキーかスペースキー。manの終了はqキーを押す。

 マニュアルが日本語になっていることを確認します。

 

ステップ4: VcXsrvのインストール

 Ubuntuのインストールと設定が終わったら、X Server (X WindowSystem)を使うためにVcXsrvをインストールします。

1VcXsrvのダウンロード

 ブラウザから以下のサイトにアクセスして[Download]ボタンをクリックし、インストーラー(vcxsrv-64.1.20.6.0.installer.exe)をダウンロードします。私がインストールした2020.3.7時点での最新版は、Ver.1.20.6.0でした。

VcXsrv Windows X Server(https://sourceforge.net/projects/vcxsrv/)」のダウンロードページ[英語](SourceForge

 

2VcXsrvのインストール

 ダウンロードしたインストーラー(vcxsrv-64.1.20.6.0.installer.exe)をダブルクリックして起動し、インストールオプションやインストール先などを指定してインストールします。

 

以下の画面が現れたらインストール終了、クリックして画面を閉じます。

 

 

3VcXsrvの起動

 インストールが完了したら、[スタート]メニューの[VcXsrv]−[XLaunch]を起動します。起動するとウィザード画面が表示され、幾つかの選択肢が表示されますが、通常は全部デフォルトで良いでしょう。

 

 

 設定を保存して終了します。

 

 以上が完了するとX Serverが起動しまう。X Serverの実行中はシステムトレイにX Serverのアイコンが表示されており、これをクリックすると設定の確認などが出来ます。

 

 

4VcXsrvが自動的に起動されるようにします。

 起動したVcXsrvは、ユーザーがサインアウトすると終了します。次回またWSLX Serverを利用したければ、手動でVcXsrvを起動する必要があります。一々面倒なので、Windows OSのスタートアップフォルダにXLaunchを登録しておきます。

 [Windows]+[R]キーを押して「ファイル名を指定して実行」ダイアログを表示させ、「shell:startup」と入力すると、ユーザーの「スタートアップ」フォルダがエクスプローラーで開かれます。ここに、起動ウィザードの最後のステップで作成した設定ファイル(〜.xlaunchファイル)を入れて置くと、次回サインイン時にはウィザードが表示されずに自動的に起動します。

 

5DISPLAY環境変数を設定します。

 X Serverからどこのディスプレイに表示して良いか分からないので、X ServerDISPLAY環境変数を設定します。設定方法は.bashrcというLinuxが立ち上がる時に読み込まるスクリプトにDISPLAY環境変数を書き加えます。

 viが使える人は、viを使うことをお勧めしますが、本書ではWindowsからNoEditerを使って.bashrcに書き加えることにします。

 まず「Ubuntuのインストール」の「6Ubuntuの最初の起動」で作ったホームディレクトリー(C:¥Users¥<Windowsユーザー名>¥AppData¥Local¥Packages¥CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc¥LocalState¥rootfs¥home¥<ユーザー名>)のショートカットのアイコンをダブルクリックして、ホームディレクトリーのフォルダを開きます。隠しファイルやファイルの拡張子の表示がチェックされているならば.bashrcのファイルが見えると思いますので、このファイルをNoEditerのアイコン(NoEditerはアイコンを作っておきます。)にドロップさせて、.bashrcのファイルを開き以下のよう、一番下に“export DISPLAY=localhost:0.0”を書き加え修正します。

 .bashrcの修正が終わったら、.bashrcを読み直します。次回からはUbuntuの起動時に自動的に読み込まれます。

これで、VcXsevのインストールは完了し、WSL(Windows Subsystem for Linux)の環境の構築は終了です。

ImageMagickのインストール(WSL環境)

  • 2020.05.10 Sunday
  • 14:01

●ImageMagickとは

 ImageMagickは、この分野の現役ライブラリーでは最も古くかつ今でもメジャーなものの一つで、画像処理として考えられる機能はほぼ完全網羅しています。

ファイルフォーマット変換(この点ではたぶん世界No.1、一覧はhttps://imagemagick.org/script/formats.phpを参照)

画像変換(基本、応用すべて)

サイズ変更、切り取り、拡大縮小、回転、反転、変形、色彩調整(明暗、コントラスト、RGBAlpha, etc.)、各種描画(外枠、文字列、図形等)、様々な特殊効果、アニメーション、モーフィング、ディザー処理、フーリエ変換、etc.これ以外にも山ほど(以下略)

画像変換で何ができるかは次を見るとよいでしょう。

http://www.imagemagick.org/script/examples.php

主要カメラメーカーのraw image (Canon, Kodak, Nikon, Olympus, Sony/Minolta, etc.)

SVG(読み込んでビットマップに変換できます)

画像ライブラリーとして考えられることはほぼ全て対応しており、特に画像を高画質で処理するのに適しています。

 ただし、ImageMagickは様々な画像フォーマットに対応しているため、脆弱性に関して問題があることは否めません。外部より様々な画像を受け取って処理するプログラムとして利用するには向いていないかも知れませんが、逆に言えば、これ程様々なフォーマットに対応していて、階調などのビット精度を正しく処理してくれるプログラムはありません。個人的には、研究開発に用いていて、会社や学校などの内部でフォーマット変換やちょっとした画像処理を行うのには、セキュリティのリスクは少ないのではないかと思っていますが、その辺はフリーソフトの宿命、あくまでも自己責任でお使いください。

 ImageMagickには、convertdisplayanimateなどのプログラムがあり、LinuxUnix系) terminalxtermやコマンドプロンプトなどから動かします。アプリなどのGUIで操作するソフトが一般的には主流なのですが、GUIは最初に使い始める時はマニュアルやヘルプを読まなくても使うことが出来、便利なのですが、動画の処理や同じことを繰り返して操作する時はかえって不便です。ImageMagickはターミナルからコマンドで操作出来るので、後に説明するスクリプトと組み合わせ使うことによって、動画や大量の画像処理にはとても便利です。

 

ステップ1:ImageMagickのインストール

 まずはWSL(Ubuntu)のコンソールからImageMagickがインストールされているか確認し、インストールされていないようならインストールします。

$display

 

Command 'display' not found, but can be installed with:

 

sudo apt install imagemagick-6.q16

sudo apt install graphicsmagick-imagemagick-compat

sudo apt install imagemagick-6.q16hdri

 

$ sudo apt install imagemagick-6.q16

[sudo] <ユーザー名> のパスワード:”のようにパスワードを要求してくるときはパスワードを入力し、続行しますか? [Y/n]”と聞かれたら“y” 続けます。

 Ubuntuはコマンドを打って、無ければどのパッケージをインストールすれば良いか教えてくれます。この辺は便利ですね。

 もう一度、“display”とタイプして見ます。

$display

 次のようなImageMagickの起動画面が現れたら、X Serverは正常に動作しています。

 

ステップ2:convertを使って見る

 ImageMagickの凄いところは、そのサポートしているフォーマットの多さと、いろいろな画像処理コマンドオプションが用意されていることです。windowsのアプリなどでフォーマット変換が行えるビューアー等もあるのですが、ほとんどのアプリは8bitに切り捨てられてしまいます。8bit以上のデータを保持しながらフォーマット変換するためには、ImageMagick以外は本格的な編集ソフトを使うしか無いようです。

 まずはフォーマット変換してみましょう。convertは、画像を変換・合成する際、以下のように<変換前の画像>のファイル形式と、<変換後の画像>のファイル形式を異なる形式にすることにより、ImageMagickが画像の拡張子を自動判別しファイル形式を変換してくれます。

1.ワークディレクトリを作成し、変換前の画像ファイルを入れて置きます。

 Ubuntuのホームディレクトリーは階層が深く、Windowsからは扱いにくいので、D:ドライブにworkというディレクトリーをWindowsのエクスプローラーで作って置きます。そのworkディレクトリーの中に、ここではkimono.pngというPNGフォーマットの画像ファイルを入れて置くことにします。なお、Windowsでは大文字/小文字を区別しませんが、UbuntuLinux)は大文字/小文字をしますので注意してください。

 

2Ubuntuアイコンをダブルクリックして、Ubuntuを起動します。

 

3D:ドライブのworkworkという名前のシンボリックリンクを貼ります。

 Ubuntuでの“D:ドライブ”は“/mnt/d”になります。シンボリックリンク(Windowsのショートカットのような機能)を張ることにより簡単にディレクトリーを移動できるようになります。

$ ln -s /mnt/d/work work

ls

work

$

 

4.シンボリックリンクのworkディレクトリーに移動します。

$ cd work

$ ls

kimono.png

$

 

5.convert  <変換前の画像名> <変換後の画像名>⏎とタイプしてフォーマット変換します。

$ convert kimono.png kimono.bmp

$ls

kimono.bmp

kimono.png

$

 

6. bitmapのファイルが出来ているのが分かります。

 次に、convertはフォーマット変換以外でも、様々な画像処理をオプションで行うことが出来ます。こちらも日本語で全て書いてあるサイトは無いので本家のサイト(https://imagemagick.org/script/convert.php)を参考してみてください。ここでは、よく使いそうな拡大・縮小のオプションについて紹介します。

 

7. convert <変換前の画像名> -resize (percent)% <変換後の画像名>⏎とタイプして拡大・縮小の処理を行います。

$ convert kimono.bmp -resize 200% kimono_x2.bmp

$ls

kimono.bmp

kimono.png

kimono_x2.bmp

$

 

8. kimono_x2.bmpというファイルが出来ているのが分かります。

 

 ヘルプの見方は、

9. convert⏎で英文ヘルプを見ることが出来ます。

$ convert

Version: ImageMagick 6.9.10-11 Q16 x86_64 2018-09-08 https://www.imagemagick.org

Copyright: © 1999-2018 ImageMagick Studio LLC

License: https://www.imagemagick.org/script/license.php

Features: Cipher DPC OpenMP

Delegates (built-in): autotrace bzlib cairo fftw fontconfig fpx freetype gslib jbig jng jp2 jpeg lcms lzma pangocairo png ps rsvg tiff webp x xml zlib

Usage: convert [options ...] file [ [options ...] file ...] [options ...] file

 

Image Settings:

  -adjoin              join images into a single multi-image file

  -affine matrix       affine transform matrix

  -alpha option        activate, deactivate, reset, or set the alpha channel

  -antialias           remove pixel-aliasing

  -authenticate password

                       decipher image with this password

  -attenuate value     lessen (or intensify) when adding noise to an image

  -background color    background color

  -bias value          add bias when convolving an image

  -black-point-compensation

                       use black point compensation

  -blue-primary point  chromaticity blue primary point

  -bordercolor color   border color

       

       

ステップ3:displayを使って見る

 次に変換した画像を見るためにImageMagickのビューアーdisplayを使って見ましょう。

 

1.Ubuntuのターミナルからdisplay <画像名>⏎とタイプすると、下図のようにdisplayが起動します。

$ display kimono_x2.bmp

 

2Commansメニューは画面をマウスで左ボタンをクリックすれば現れ、閉じます。こちらメニューからもいろいろな処理や操作が出来ますので試して見てください。

 

3.画面でescキーまたは右上の×印をクリックして終了です。

 

ステップ4:animateを使って見る

 続いてanimateを使ってみます。animatemp4などのmpegや、何より連番ファイルにも対応しているので非圧縮画像を動画で見ることが出来、画像処理アルゴリズムの評価に使えます。

 

1workディレクトリーに動画ファイルを用意して置きます。

 ここでは、xxxxx.MP4というMP4のファイルを用意しています。

 

2.Ubuntuのターミナルからanimate <画像名>⏎とタイプすると、下のようにanimateが起動します。なお、長いファイルは起動に時間がかかり、メモリを沢山使うので注意してください。非圧縮も扱る1〜2秒程度のクリップ用の動画ビューアーと思っていた方が良いと思います。

$ animate xxxxx.MP4

連番ファイルの場合は、

$ animete example*.bmp

 

3Commansメニューは画面をマウスで左ボタンをクリックすれば現れ、閉じます。こちらメニューからもいろいろな処理や操作が出来ますので試してみてください。

 

4.画面でescキーまたは右上の×印をクリックして終了です。

ExifToolのインストール(WSL環境)

  • 2020.05.10 Sunday
  • 18:14

●ExifToolとは

 民生用カメラのメタデータ(付帯情報)としてEXIFデータが付けられています。このEXIFデータには、写真を撮るのに使用されたカメラやレンズ、絞りやシャッタースピード、ホワイトバランスなど様々撮影情報が付加され記録されています。このEXIFデータを読み出す代表的なアプリがexiftoolです。exiftoolWindows版もありますが、Ubuntuでもaptで簡単にインストール出来ますのでこちらを使うことにします。

 

1.Ubuntuのコンソールを開いて、exiftoolがインストールされているか確認し、インストールされていないようならインストールします。

$ exiftool

 

Command 'exiftool' not found, but can be installed with:

 

sudo apt install libimage-exiftool-perl

 

$ sudo apt install libimage-exiftool-perl

 “[sudo] <ユーザー名> のパスワード:”のようにパスワードを要求してくるときはパスワードを入力し、続行しますか? [Y/n]”と聞かれたら“y” 続けます。

 

2workディレクトリーにRAWデータを用意して置きます。

 ここでは、α7siiではDSC000**.ARWファイルを用意しています。

 

3exiftool <RAWデータ>とタイプすると、次のようにEXIFデータがを見ることが出来ます。

 

 

dcrawのインストール(WSL環境)

  • 2020.05.11 Monday
  • 10:57

●dcrawとは

 EXIFデータもカメラメーカー各社バラバラなのですが、RAWデータも各社バラバラになっていて、.nef(NIKON) /.CR2(CANON) /.ARW(SONY)など拡張子やフォーマットもバラバラです。この各社バラバラな数百台ものRAW画像をサポートしているフリーでかつオープンソースのプログラムがdcrawです。dcrawはフリーのRawTherapeeAdobe Photoshopにも使用されていて、画質的にもメーカー製のRAW現像ソフトに負けない画質です。メーカー製のRAW現像ソフトは各社各様の絵作りがされるため、リアルに近づくという意味ではむしろ高画質と言えます。ImageMagickでも各社のRAWデータからの現像は可能ですが、リニアのRAWデータ(画像処理をまったく行っていないRAWデータ)を出力することが出来るのはdcrawだけのようです。(私が知らないだけかも知れませんが)

 dcrawを使うには、ImageMagickと同様にUbuntuではaptを使ってインストール出来ます。ただ、dcrawの出力はppmpgmフォーマットが基本なので、まずはppmpgmフォーマットが見ることが出来るXnViewをインストールして見ましょう。ImageMagickdisplayでも見れますが、XnViewの方がGUIで使いやすく、色や様々な処理が出来るのでRAW現像にはとても便利です。

 

ステップ1:RAW現像には便利なビューアーXnView

 XnViewは主にWindowsからちょっと見る/画面のスクリーンショット(SS)/キャプチャーを撮るのに便利な、数少ないPPMフォーマットが見ることが出来るビューアーソフトです。XnViewは、個人、学術、非商用利用ではフリーウェアとして使え、500種類以上の画像を表示出来る、3ペイン形式のエクスプローラー型画像ビューアーで、画像の各種加工や編集・変換、画面キャプチャーやTWAIN機器からの画像取り込み、ファイルの一括リネーム、その他にもさまざまな機能を備えているので、使いこなせば便利なソフトです。 (マルチプラットフォーム対応版(Windows/Mac OS X/Linux)の「XnViewMP」もあります。)

 ダウンロードは、窓の社(XnView)XnView公式サイトの何れかから行え、ポータブル版は公式サイトの「.zip」ファイルをダウンロードして解凍後に実行ファイル、xnview.exexnviewmp.exe(マルチプラットフォーム版)をクリックして起動します。

 

ステップ2:dcrawのインストール

 dcrawUbuntuaptを使って簡単にインストール出来ます。

 Ubuntuのコンソールを開いて、dcrawがインストールされているか確認し、インストールされていないようならインストールします。

$ dcraw

 

Command 'dcraw' not found, but can be installed with:

 

sudo apt install dcraw

 

$ sudo apt install dcraw

 “[sudo] <ユーザー名> のパスワード:”のようにパスワードを要求してくるときはパスワードを入力します。

 

ステップ3:dcrawによるRAW現像

 dcrawを使ってのデフォルトでのRAW現像はとても簡単で、Ubuntuのコンソールからdcraw xxxxx.ARW(ARWはソニーのRAWフォーマット)とタイプすれば、xxxxx.ppmというファイルが出来てppmフォーマットに自動的に現像してくれます。先程のexiftoolの項で作ったディレクトリーで.ARWファイルを現像して見ます。

$ dcraw DSC00100.ARW

$ ls

DSC00100.ARW

DSC00100.ppm

$

ビューアーで見てみるとこんな感じで現像出来ました。

 

ステップ4:dcrawによるRAWデータ(PPMフォーマット)変換

 ただ、これでは、RAWを取り出して独自のデモザイクのアルゴリズムやカラー調整が出来ないので、次にdcrawを使ってRAWデータを取り出す方法を示します。

 dcrawからRAWデータを取り出すには、オプションの-D(完全な未加工)と-4(リニア16bit)を付ければ、ガンマやデモザイクをかけていない16bitリニアのRAWpgmフォーマットで出力出来ます。では、早速やって見ましょう。

$ dcraw -D -4 DSC00100.ARW

$ ls

DSC00100.ARW

DSC00100.pgm

DSC00100.ppm

$

 

 真っ暗なグレー画像ですが、ガンマをかける前のリニアのRAW画像なのでこれで正解です。

 

FFmpegのインストール(WSL環境)

  • 2020.05.11 Monday
  • 13:35

●MPEGとの相互変換ソフト:FFmpeg

 次に動画の非圧縮ファイルで手に入れるため、ffmpegというフリーのソフトウェアをインストールします。ffmpegは、フリーのソフトでありながら、

・動画や音声のコンバート(数多くの形式に対応している。)

・動画や音声の合成や抽出

・コマンドラインインターフェース(CUI)のため、バッチ処理などで利用できるなどの特徴を備えており、動画や音声を加工する際に、非常に便利なツールです。

 なぜ便利かと言うと、画像処理アルゴリズムは非圧縮フォーマットで処理を行うのが基本なのですが、このffmpegは下図のようにMPEGなどの圧縮動画フォーマットをコマンドラインで非圧縮フォーマットへのデコードと、また非圧縮フォーマットからエンコードしてMPEGに変換が出来るのです。後に説明するスクリプトを組むことによって、処理の重たい動画の画像処理をコンピューター任せに自動的に処理することが出来、とても便利です。

 

 

ステップ1:FFmpegのインストール

 ffmpegUbuntuaptを使って簡単にインストール出来ます。

 Ubuntuのコンソールを開いて、ffmpegがインストールされているか確認し、インストールされていないようならインストールします。

$ ffmpeg

 

Command 'ffmpeg' not found, but can be installed with:

 

sudo apt install ffmpeg

 

$sudo apt install ffmpeg

 “[sudo] <ユーザー名> のパスワード:”のようにパスワードを要求してくるときはパスワードを入力し、続行しますか? [Y/n]”と聞かれたら“y” 続けます。

 

ステップ2:FFmpegによるMPEGデコード

 早速、ffmpegを使ってみます。MPEGの動画ファイルを用意してください。例ではGoPro Hero4.MP4ファイルを1秒間だけ.ppmの連番ファイルに変換する例を示しています。今回使ったオプションは、

-i            入力ファイル指定

-ss         静止画に変換したい、動画の再生開始位置(秒)

-t            静止画に変換したい、動画の長さ(秒)

%05dは連番ファイルの指定です。

1.まずは、MP4のファイルを用意していただき、workという名前のworkディレクトリーを作って、中に入れて置いてください。

2.Ubuntuのコンソールからffmpegを実行します。

$ cd work

 

$ ffmpeg -i GOPR0106.MP4 -ss 8 -t 1 GOPR0106.%05d.ppm

例では8秒目から1秒間(60枚)のPPMフォーマットで静止画の連番ファイルに変換しています。

オプションなどの詳しい使い方については、WikipediaFFmpegなどを参考にしてみてください。

 

コンパイラのインストール(WSL環境)

  • 2020.05.11 Monday
  • 13:57

 dcrawのインストールが終わったら、最後にgccmakeなどの開発ツールをインストールします。

 

ステップ1:gccmakeのインストール

 gccやmakeも dcraw のインストールと同様に、Ubuntuのコンソールを開いてインストールします。

$ sudo apt install build-essential

 “[sudo] <ユーザー名> のパスワード:”のようにパスワードを要求してくるときはパスワードを入力します。

 

ステップ2インストールの確認

$ gcc --version

gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0

Copyright (C) 2017 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ make --version

GNU Make 4.1

このプログラムは x86_64-pc-linux-gnu 用にビルドされました

Copyright (C) 1988-2014 Free Software Foundation, Inc.

ライセンス GPLv3+: GNU GPL バージョン 3 以降 <http://gnu.org/licenses/gpl.html>

これはフリーソフトウェアです: 自由に変更および配布できます.

法律の許す限り、 無保証 です.

$

 上記のようにバージョンが確認できたらインストールは完了です。

 

 開発環境のインストールや使い方について説明してきました。これで画像ファイルをUbuntu(Linux)環境とWindowsでシームレスに扱えるようになりました。

 

Cygwinのインストール

  • 2020.05.11 Monday
  • 14:28

●Cygwinとは

 WindowsとLinuxがシームレスに行える開発環境として、WSL以外にもう一つCygwinがあります。WSLはWindows10からサポートされた機能ですので、それ以前のWindows8などはCygwinを試して見てください。

 Cygwinをフルインストールすると、gccというフリーのCのコンパイラーやImageMagick画像を操作したり表示したりするためのソフトウェアスイート)python(汎用のプログラミング言語)も自動的にインストールされます。(LinuxMacも同様にgccなどが入っています。)

 なお、CygwinImageMagickなどは、多数の脆弱性が報告されています。フリーなのでリスクを承知してご利用ください。フリーソフトは、使用者の責任の上で(At Your Own Risk!)使うことになるわけです。よって、フリーソフトを使用して何か障害が起きたとしても、作成者や著作権保持者が責任を負うようなことにはなりません。

 Cygwinをインストールする前に、注意していただきたいことが二点あります。それはCygwinのインストーラーにはアンインストールの機能が無いため、自動ではアンインストール出来ない事です。Cygwinをアンインストールするには、Cドライブのcygwinまたはcygwin64のフォルダを消せば良いのですが、管理者権限でも消せないファイルがあるので、パーミッションを変えるなど試行錯誤して消す必要があります。それでもwindowsのメニューに一部残ってしまうので、それを一つずつ探して消すという面倒な作業になります。その辺を承知の上インストールしてください。

 もう一点は、IBMRapportというフリーのウィルススキャンソフトの相性は最悪で、このソフトがインストールされていて、稼働していると、Cygwinの動作は極端に遅くなり、インストールも極端に遅くなり実質インストール出来なくなります。原因はRapportというウィルス対策ソフトについてくるTrusteer エンドポイント保護というソフトが悪さをしていたようです。Rapportは某銀行のお勧めで無料ウィルス対策ソフトとしてインストールしたのですが、それが災いしていたようです。やはりタダより高いものは無いようです。

 上記のような問題はありますが、画像処理を行うためのツール(ImageMagickpythonなど)は揃っていますし、WindowsのソフトウェアもCygwinから直接起動出来たり、またWindowsのソフトウェアも同時に使うことが出来るので、メールやレポートを書きながらなども出来て非常に便利です。また、C言語のデバッガーとしても最強?のVisual Studioも使えるのも便利なところです。是非インストールして試してみてください。

 

ステップ1:Windowsの設定

 Cygwinをインストールする前に、まずはWindowsの設定の変更やテキストエディターの準備をして置きます。

 Windowsの設定としては、ファイルの拡張子や隠しファイルが非表示だと不便ですので、エクスプローラーからファイルの拡張子と隠しファイルのチェックボックスをにチェックします。

 次に『コントロールパネル』『システム』『システムの詳細設定』『環境変数(N)』のシステム環境変数のPathに”;C:¥cygwin¥bin”を追加します。

 これでWindowsの設定は終了。

 テキストエディターですが、CygwinではUTF-8の文字コードを使うので、UTF-8に対応したテキストエディターをインストールします。テキストエディターで有名なのは秀丸エディタですが、こちらはシェアウェアーなのでフリーのNoEditorがお勧めです。Cygwinviemacsなどのテキストエディターも使えますが、慣れるのに時間がかかるため、UTF-8に対応したWindowsのテキストエディターを使った方がいいでしょう。

 

ステップ2:Cygwinのダウンロード

 Cygwinは以下のURLよりダウンロードすることが出来ます。

https://www.cygwin.com/

 下図Cygwinのホームページです。64bit版と32bit版がありますので、みなさんのWindowsにあった方をダウンロードしてください。ImageMagickを使ってDPXフォーマットを変換したい方はWindows64bitでも32bit版のインストールがお勧めです。64bit版はなぜか変換出来ません。8Kなどの高解像度の画像を使いたい方は64bit版がお勧めです。なお、裏技として32bit版でも64bitで動作させたい場合は、BIOSVirtualization Technology Enabledにすれば仮想化モードが働いて64bitで動作させることも出来ます。ちなみに仮想化モードをONにしてもデメリットはあまり無いようです。

 現在は64bit版を推奨しているようで、32bit版はページの下の方でダウンロード出来ます。

64bit

setup-x86_64.exe

32bit

setup-x86.exe

 

ステップ3:Cygwinのインストール

 上記でダウンロードしたsetupファイルを起動しインストールを開始します。

 

1.ダウンロードしたsetupファイルを起動します。

 

2.セットアップ画面が表示されるので「次へ」をクリックします。

 

3.インターネット接続でCygwinパッケージをダウンロードするので、一番上のInstall for Internetを選択し「次へ」をクリックします。

 

4.デフォルトの設定で問題なければ「次へ」をクリックします。

 

5Cygwinをダウンロードする一時保存場所の設定をします。必要な方は設定し「次へ」をクリックします。

 

6.プロキシの設定をします。必要な方は設定し「次へ」をクリックします。

 

7Cygwinパッケージをダウンロードするサーバーを選択します。

私は、日本の ''http://ftp.jaist.ac.jp''(JAIST 北陸先端科学技術大学院大学)などを選択しています。他にも日本のサーバー(***.jp)がありますので、お好きなところを選んで「次へ」をクリックしてください。

 

8.パッケージのダウンロードが始まりインストールが開始されます。

 

9.しばらくすると、Select Packagesの画面が表示されます。

 

10DefaultからInstallに変更します。

私はXwindowImageMagickdcrawgccなどを使いたいのでフルインストールにしていますが、ディスク容量が99GB使っていました。ディスク容量を節約したい方は、ここで使いたいパッケージを選択してインストールしてください。

 

11.インストールするパッケージの選択が終わったら、「次へ」をクリックしてインストールを続行します。

次のようなメッセージが出ますが、「OK」をクリックして進みます。

 

12.確認画面が表示されるので「次へ」をクリックします。

 

13.パッケージのダウンロード&インストールが開始されます。

パッケージダウンロード&インストールが完了するまでしばらく待ちます。

ネットワーク環境にもよりますが、2時間以上は掛かります。12時間以上掛かっていてインストールが進んでいないようでしたら、ウィルススキャンなどとのコンフリクトが考えらえますので停止してやり直してみてください。ちなみに私のノートPCwifi環境ではインストールするのに約9.5時間掛かりました。

 

インストールの途中でダウンロードエラーが出た場合は、「Retry」をクリックしてリトライします。

 

以下のようなポストインストールスクリプトエラーが出ることがあるらしいが気にしないでいいらしいです。「次へ」をクリックします。

 

14.デスクトップにCygwinのショートカットを作成してほしいのでデフォルトのまま「完了」ボタンをクリックします。

デスクトップとメニューにCygwinのアイコンが出来ればインストールは完了です。

 

ステップ4:Cygwinの設定

1.上記の手順でインストールを行うと、デスクトップにCygwin64 Terminalアイコンが(ショートカット)が作成されているので、ダブルクリックをして起動します。

 

2.初回起動時は、ホームディレクトリーと各種ファイルが作成されるので、以下のような出力になります。

 

3.bashrcを設定します。Cygwin Termninal上ならばvi .bashrcなどを使って、Windowsならば、 C:¥cygwin64¥home¥<ユーザー名>の下に.bashrcというファイルが出来ていますので、このファイルをNoEditorなどのUTF-8をサポートしているテキストエディターを使って修正してください。ご参考までに私の.bashrcの設定を次に示しておきます。

.bashrc

# Source global definitions

if [ -f /etc/bashrc ]; then

       . /etc/bashrc

fi

 

set history=30

alias ls='ls --show-control-chars --color=auto'

alias ct='cygterm &'

 

PATH=/usr/sbin:/sbin:/usr/X11R6/bin:/usr/bin:/bin:/usr/local/bin

 

export PATH

export PAGER=more

export TERM=vt100

 

alias la="ls -aF"

alias ll="ls -al"

alias his="history"

 

alias runx='run xwin -multiwindow -listen tcp &‘

 

# If not running interactively, don't do anything

[[ "$-" != *i* ]] && return

 

4.Xdefaultsを設定してXTermの設定を変えます。

 .Xdefaults

XTerm*VT100*background:         black

XTerm*VT100*foreground:         gray90

XTerm*VT100*font:               8x16

XTerm*VT100*geometry:           80x28

 

5.一旦Cygwin Termninalをターミナルから「exit」とタイプしてリターンまたはWindowの×印をクリックして閉じ、再びCygwin64 Terminalアイコンをダブルクリックして起動します。これにより.bashrc.Xdefaultsが読み直されます。

 

6Cygwin Termninalからrunxxterm&とタイプしてXTerm(Xwindow)を起動します。次のようなウィンドウが起動されればOKです。

 

7.最後に、いろいろ使ってみて、cpコマンドで特殊なパーミッションに変わってしまう場合は、

/etc/fstab(C:¥cygwin64¥etc¥fstab)

none /cygdrive cygdrive binary,posix=0,user 0 0

none /cygdrive cygdrive binary,posix=0,user,noacl 0 0

に書き換えます。

ホームディレクトリー以外でcygwinの処理を行うと特殊なパーミッションに変わってしまいますので、上記の設定をして置いた方がいいでしょう。

これでCygwinのインストールは完了です。