1. HOME
  2. ブログ
  3. IT技術
  4. Unity+OpenCVで画像処理に挑戦!
Unity+OpenCVで画像処理に挑戦!

Unity+OpenCVで画像処理に挑戦!

Unity に OpenCV が対応

ゲームエンジンの中でも世界最大のシェアを誇る「Unity」。

画像処理ライブラリ「OpenCV」が Unity に対応したため、画像処理が簡単にできるようになりました。

今回は、Unity で OpenCV を使い、画像処理する方法を解説していきます。

こちらの記事もオススメ!



OpenCV とは?

対応言語C/C++、Java、Python、MATLAB

「OpenCV」とは、Intel が開発したコンピュータビジョン向けライブラリです。

画像処理機能だけではなく、解析や機械学習機能も備えています。

マルチプラットフォーム対応かつ、オープンソースなので、基本的には無料で使うことができます。

【OpenCV 公式サイト】
https://opencv.org/

OpenCV でできること

  1. リサイズ、トリミング、モザイク処理、色処理などの基本的な画像処理
  2. 物体検出・追跡
  3. カメラキャリブレーション
  4. コンピュテーショナルフォトグラフィ
  5. 機械学習
  6. GUI

実際に Unity + OpenCV で画像処理に挑戦!

それでは、実際に Unity と OpenCV を使って画像処理をやってみましょう!

アセットストアからアセットをダウンロード

まずは、以下のリンクからアセットをダウンロードしましょう。

その後、Unity エディタでインポートしてください。

【OpenCV plus Unity】
https://assetstore.unity.com/packages/tools/integration/opencv-plus-unity-85928

安全ではないコードの実行を許可

Unity で OpenCV を使うには、コードの実行を許可する必要があります。

Build Settings → Player Settings のインスペクタから「Unsafecode」を許可します。

安全ではないコードの実行を許可

ポインタなどを使う時も、これと同様です。

必要なファイルとオブジェクトを用意する

今回は、以下の画像ファイルを使います。

必要なファイルとオブジェクトを用意する 星・丸・四角

この画像ファイルをダウンロードし、コピーの上、名前を変えて2つのファイルをインポートしましょう。

画像設定を変更

さらに、画像の設定を以下の通りに変更してください。

「Read/Write Enable」で、外部ソースコードからの処理を許可します。

画像設定を変更

RawImage を配置

次に、Unity の Scene 内に、2つの RawImage を配置します。

RawImage を配置

ソースコードの記述

最後に、以下のソースコードを、先ほど用意した RawImage にアタッチします。

「originalimage」の部分に、元の画像が代入されます。

結果を確認

結果は、以下のようになります。

結果を確認

見事、青色のみを抽出することが出来ました!

OpenCV と HSV 形式

今回は「HSV形式」で色を指定しています。

HSV は一般に用いられる RGB と違い、「色相」「彩度」「明度」の3成分で色を決定します。

OpenCV の HSV 色空間

OpenCV で HSV 形式を使う場合、各成分の値は以下の通りです。

色相(Hue)0~180
彩度(Saturation)0~255
明度(Value)0~255

本来、HSV 形式の色相の値は「0~360」なのですが、OpenCV の色相最大値は「180」なので注意してください。

黄色を指定

例として、黄色を指定してみましょう。

上記のコードでは、この部分で青色を指定しています。

ここを以下のように変えれば、黄色が抽出されます。

実行

実行してみると、以下のようになるはずです。

黄色を指定 実行画像

さいごに

今回は、Unity と OpenCV を使って画像処理する方法をご紹介しました。

アセットを使えば、「ゲームの処理」と「画像処理」を一つのソフトに統合できるため便利ですよ。

画像処理以外にも、OpenCV には便利な機能がたくさんあるのでオススメです!

記事を書いた人

\ 3度のメシより技術が好き /
(株)ライトコードは、WEB・アプリ・ゲーム開発に強い「好きを仕事にするエンジニア集団」です。
システム開発依頼・お見積もりはこちらまでお願いします。
また、WEB・スマホ系エンジニアを積極採用中です!
※現在、多数のお問合せを頂いており、返信に、多少お時間を頂く場合がございます。

こちらの記事もオススメ!



書いた人はこんな人

ライトコード社員ブログ
ライトコード社員ブログ
「好きなことを仕事にするエンジニア集団」の(株)ライトコードです!
ライトコードは、福岡本社、東京オフィスの2拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もりは大歓迎!
また、WEBエンジニアとモバイルエンジニアも積極採用中です!

ご応募をお待ちしております!

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア