概要 斜めの方向から撮影してしまったけど、後から正面から撮った画像が欲しくなった事はありませんか? 例えば、以下の写真ような場合です。 実はこれを正面から撮ったように画像を変形する事が出来ます。 そう。ホモグラフィならね。 こんな感じに出来ます。 ホモグラフィとは射影変換を用いてある平面から別の平面と射影する変換です。 似たものにアフィン変換がありますが、こちらは平行なものは平行(長方形は長方形)に変換されます。 ホモグラフィでは平行性は保存されないので、台形から長方形へと変換する事が出来ます。 画像処理向けライブラリのopencvを使えば、iPhoneで簡単に実装出来ます。 早速実装してみましょう。 環境 mac marverics xcode 5.02 opencv 2.4.6 プロジェクトの作成 プロジェクトの新規作成からSingle View Applicatioを選択し、プロジェ
iOS SDK では Core Image の CIDetector クラスで簡単に顔認識をおこなうことができます。iOS 7 からは、笑顔やまばたきの検出も可能に なりました。 が、CIDetector は detectorOfType:context:options: というメソッドの第1引数で Detector Type を指定できる設計になっているものの、 public let CIDetectorTypeFace: String public let CIDetectorTypeRectangle: String public let CIDetectorTypeQRCode: String public let CIDetectorTypeText: String Detector Types - CIDetector Class Reference と、4つしか定義されてない
田中(邦)です。 今回はOpenCV 2.4.6を使ってiOS上で画像処理を簡単に始める方法について紹介したいと思います。 CocoaPodsのインストール CocoaPodsとはiOSとOSX用のライブラリ管理ツールです。 オフィシャルサイトに書いてある通り、下記のコマンドだけでインストールは完了です。 $ [sudo] gem install cocoapods $ pod setup OpenCV 2.4.6のインストール OpenCVは様々なプラットフォームに対応したコンピュータビジョン向けライブラリです。 顔認識や様々な画像加工などに用いることができます。 今回はiOS上で動作するものを利用します。 https://github.com/Fl0p/OpenCV-iOS CocoaPodsを使わずにOpenCVを導入しようとすると、こちらの記事に書かれているように色々と面倒な手順を
iPhone/iPad(iOS)アプリの開発情報の発信を行っていきます。 presented by NEXT-SYSTEM iOS Developers こんにちわ。Uedaです。 今回はタイトル通り, ios上で動画像をOpenCVで解析するための準備をしてみました。 http://reiji1020.hatenablog.com/entry/2012/11/18/165804 のサイト曰く, OpenCV2.4.2からFramework形式のものが既に準備されているので, 導入がすごく簡単になっています。 ライブラリにopencv2.frameworkを追加し, 以下のファイルUIViewControllerを実行すると, 動画像をOpenCVで画像処理・解析するためのMatの形式に変換することができます。 ヘッダファイル @interface TestOpenCVViewContro
お久しぶりです。CM iOS部隊所属の平井です。今回は久しぶりにOpenCVネタをやっていこうと思います。 iOS6ではCore Imageが強化され色々使えるフィルタも増えたようですが、実際業務で使おうとするとiOSのバージョンだったりで使えないことがほとんど。なのでやっぱりまだOpenCVは手放せそうにないですね。 で、今回はせっかくなので撮影中のカメラの映像をリアルタイムでフィルタするサンプルを作りたいと思います。では早速。 ちなみに今回は以下の環境を前提に説明します。 Mac OS X 10.8 Moutain lion Xcode 4.6.1 iOS SDK 6.1 iPhone 5 サンプルプロジェクトのダウンロード 今回紹介するiOSアプリのソースコードをGitHubにあげてあるのでダウンロードしてください。 hirai-yuki/RealTimeProcessing 実機に
超大ヒットした『漫画カメラ』、ほんとに漫画っぽくなって、動作も軽快、シェアも簡単で楽しいですよね。 ただ、ちらほらと「同じこと考えてた」「そういうの作ってた」という声を聞くことがあります。実際に同様のコンセプトのアプリもたくさん出ています。 実は、カヤックでも、2年ほど前、Instagramが出てきた頃に"Comicgram"という企画が出たことがあって、ちょっとだけモックアプリをつくったことがありました。 そのときつくったモックアプリで自動で写真加工した結果がこちら 『漫画カメラ』ほど漫画っぽくないかもしれませんが、それっぽいといえばそれっぽいです。 実は、このモックアプリはOpenCVにもともと備わっている機能を組み合わせただけなので、結構サックリ実現できます。 以下でその6ステップの処理内容について紹介させていただきます。 ステップ1:領域分割 『画像ピラミッドを用いた画像の領域分割
人間から見て"納得感"のある画像処理をしようと思うと、領域分割(セグメント化)をしたくなる場合が多々あります。 たとえば、人物と背景とを別々に処理したい、とか、人の肌の部分だけに処理をしたい、とか。 OpenCVではそういった「領域分割」を行ってくれる関数が何種類か用意されていますが、vImageでもそういう機能があるのかないのか、調べてみました。 OpenCVにある領域分割系の関数 vImageのドキュメントを調べる前に、メソッド名とか説明にあるキーワードを見逃さないように、まずOpenCVでの画像領域分割系関数を洗い出してみました。 画像ピラミッドを用いた領域分割: cvPyrSegmentation 平均値シフト法による領域分割: cvPyrMeanShiftFiltering Watershedアルゴリズムによる画像の領域分割: cvWatershed 輪郭の検出と描画: cvFi
上記ファイルを作成しましょう。ファイルを作成したら、実装ファイルの拡張子を.mから.mmに変更します。実装ファイルの拡張子を.mmにすると、ファイル中にObjective-CとC++のソースコードを混在させることができます。 FilterBaseクラス FilterBaseクラスはフィルタクラスの抽象クラスです。CGImageからOpenCV画像データに変換したり、OpenCV画像データからCGImageに変換したりするメソッドを定義しておきます。また、このクラスを継承したサブクラスにてフィルタ処理をかけるときに使用するメソッド- doFilter:も定義しておきます。 FilterBase.h #import <Foundation/Foundation.h> #import <opencv2/opencv.hpp> @interface FilterBase : NSObject /*
通常のぼかしフィルタは、フィルタをかける画像が大きくなればなるほど、またフィルタのオペレータが大きくなればなるほど 処理時間は指数関数的に増大してしまいます。特にゲームではリアルタイム性が求められるため、 高速なぼかしフィルタのアルゴリズムが必要となります。ここではopenCVを用いて高速ぼかしフィルタのアルゴリズムを説明します。 単純にぼかしフィルタを使用すると、下図のようにフィルタが1px右へ移動したときに赤色のゾーンを再計算する必要があります。 高速化するために、この部分の計算結果を保存しておき、次の計算の時に使用しようというのが基本的なアイデアです。 まずは縦列の値C0, C1, C2を先に計算し、それをフィルタ移動先でも再利用します。縦列の値Ciは 各ピクセルの足し算p(i,j-1)+p(i,j)+p(i,j+1)で求めることが出来ます。 フィルタをかけた後の値Sは(C0+C1+
ここではMacPortsを利用するので、インストールしましょう。(参考:【技術メモ】MacPortsの導入方法) MacPortsでインストールする $ sudo port install opencv 以上のコマンドを叩くと、インストールが開始されます。僕の環境では2時間くらいかかりましたので、他の作業をして待ちましょう。 Xcodeでプロジェクトを作成 テンプレートの作成 テンプレートの選択 プロジェクトの新規作成で、上のようなテンプレートを選択します。 プロジェクトの設定 まずはじめに、ビルド設定を通します。 設定をすべての構成にしてから、”プロジェクトの情報”→ビルド→アーキテクチャ→有効なアーキテクチャで、ppcに関して削除します。続けて、検索パス→ヘッダ検索パスに”/opt/local/include“を通します。 2.2 以前は/opt/local/include/op
Nov 28, 2017 iOS 11 ProgrammingでCore MLについて書きました. Sep 27, 2017 High Sierraのインストール問題 Sep 20, 2017 HTMLSpecialCharactersの内部実装の速度について Sep 18, 2017 iOSDC2017 Jun 30, 2017 iOS11 Programming - CoreML Mar 28, 2017 try swift 2017 感想 Nov 17, 2016 質問の大切さ,おもしろさ Apr 25, 2016 Let's Encryptを疑え!信用はお金で買え! Apr 14, 2016 imgurで画像アップロードできないので怒った Jan 26, 2016 ガチエンジニアがお勧めする科学絵本シリーズ〜よーするに医学絵本シリーズ Jan 26, 2016 ガチエンジニアがお勧
(1) 画像をUIImageに読み込む 指定したファイルから画像を読み込み、UIImageに格納するためにはUIImageのクラスメソッドであるimageNameメソッドを使います。このメソッドはinitWithContentsOfFileよりも高速です。 //画像を読み込む UIImage *image = [UIImage imageNamed:@"test.jpg"]; (2) 画像をファイルパスから読み込む ファイルパスを指定して画像を読み込むためには、NSBundleクラスを用いてパスを作成し、そのパスをinitWithContentsOfFileの引数にしてわたします。ただし、initWithContentsOfFileで作成したUIImageの描画は非常に遅いので注意。 NSString *filePath = [[NSBundle mainBundle] pathForRe
iPhoneでOpenCVを動かしてみた。自分でプロジェクトを組んでも良いのだけど、既にOpenCVを一式含むアプリケーションを公開してくれている方がいるので、これを有り難く使わせてもらった。記載によれば、OpenCV 2.1とiOS4に対応しているようだ。 最新のOpenCVとiOS SDKに対応 ・2010/08/22更新 - ビルドサポートスクリプトをOpenCV 2.1.0に対応し、パッチを作成してiOS SDK 4.xに対応させました。 yoshimasa niwa - iPhoneでOpenCVを使う方法 ビルドするだけで、シミュレータと実機の両方で問題なく動作した。Mac上では動画の顔認識も出来るけれど、さすがにリソースの厳しいiPhone上では1枚の写真を顔認識するだけでも少々時間がかかる。実用的に使うには、もう少しチューニングが必要になりそうだ。 ちなみにAndroidに
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く