(C) Copyright Chongqing University All Rights Reserved. 重庆大年夜学 版权一切2012 地址:重庆市沙坪坝区沙正街174号 邮编400044 (渝ICP备15007027号-4)
(C) Copyright Chongqing University All Rights Reserved. 重庆大年夜学 版权一切2012 地址:重庆市沙坪坝区沙正街174号 邮编400044 (渝ICP备15007027号-4)
前回に引き続き、今回はOpenCVを使って顔認識を行います。 分類器 画像データの中から顔を検出するための分類器となるファイルを用意します。 Githubからこちらをダウンロードします。 ダウンロードしたデータの中から、data/haarcascades/haarcascade_frontalface_alt.xmlファイルを取り出し、プロジェクトに追加します。 顔認識 OpenCVの処理はC++で書く必要があります。そのためにObjective-Cでラップしてあげます。 まずXcodeで「New File」から「Objective-C」のファイルを追加します。すると「Would you like to configure an Objective-C bridging header?」と聞かれるのでYesとします。 作成された.mファイルの名前を変更して.mmファイルとするとC++が使用
iPhoneのカメラを使って、リアルタイムに顔認識する機能を調べてみました。 まずはカメラで撮影し、それを画面に表示させるところまで作ります。 その後にカメラから入ってきた画像データをOpenCVでごにょごにょして顔認識を行います。 プロジェクト作成 新しいSingle View Applicationのプロジェクトを作成します。 カメラを使うので実機で動作確認する必要がありますので、そのための必要な設定を行っておきます。 OpenCVインストール OpenCVはCocoaPodsを使ってインストールします。 一旦プロジェクトを閉じてターミナルを実行し、プロジェクトのディレクトリへ移動します。 「Podfile」ファイルを作成し、次の通りに記述します。 platform :ios, "7.0" pod 'OpenCV' ターミナルでpod installとすると、OpenCVがインストール
画像認識系のカメラアプリを作るために色々と調べたメモ。 OpenCVを使って特徴量抽出という手法でやればいいようです。 特徴量抽出を使って画像認識する qiita.com qiita.com qiita.com SwiftからOpenCVを使う これも難なくいけそう。 ameblo.jp ギャップロさんのライブラリ OpenCVでの画像認識をいい感じに簡単に使えるようラップしてくれたライブラリっぽいです。 特徴量データを作成するためのアプリもついてます。 www.gaprot.jp そのライブラリを使ってアプリを作った事例 qiita.com Open CV 3.0 OpenCV 3.0 on iOS from Shuichi Tsutsumi 各種アルゴリズムなどをまとめた長編記事 www.pro-s.co.jp 物体検出器の作成について gihyo.jp kivantium.hateb
環境 Mac OS X 10.11.4 Xcode 7.3 CocoaPodsの導入 CocoaPodsはiOS用のライブラリ管理ツール。 下記のコマンドで導入が完了する。 10分くらいかかった。 Rubyのバージョンが足りないと gem install が失敗することがある。 rbenv で ruby の環境を整える を参照してバージョンアップする。 pod setup もgitの設定によっては失敗するらしい。 下記を参照。 Cocoapodsの設定がうまくいかない時 OpenCVの導入 あらかじめ、OpenCVを利用するプロジェクトを作成しておく。 (今回はOpenCVTestという名前で作成) Xcodeを終了してからプロジェクトのルートディレクトリに移動して、
前回作成したサンプルを、そのままSwiftに置き換えてみたメモ。 準備 とりあえずXcode6 Beta6をインストールしたところ、Xcode自体は起動するものの、なぜかSimulatorが起動せず、エラーに。 ネットで調べつつ色々試したものの、結局Macを再起動したら問題なく動作するようになりました。 プロジェクトの作成はObjective-Cと同じで、言語をSwiftにするだけです。 opencv2.frameworkも同じように追加します。 SwiftとObjective-Cの振り分け Storyboardを使ったUI部分や、UIImageを使用する部分はSwiftで記述することにします。 しかし、SwiftにはCやC++との互換性がないため、C++を使用するOpenCVを扱う部分はObjective-Cで記述します。 Swift Delegate、ViewControllerのファ
iOSプログラミング with Swift 2 2016.06.20: created by SwiftでOpenCVを利用して顔認識する(AVFoundationの例) 「SwiftでCamera を使う(AVFoundation 経由)」 と 「SwiftでOpenCVを利用して顔認識する(もっとも単純な例)」 を組み合わせて、リアルタイムで顔認識をする Swift のプログラムを作成してみましょう。 OpenCV のiOS用バイナリ を用意します。今回は http://opencv.org/ で公開されている OpenCV for iOS から opencv2.framework.zip をダウンロードします。 学内からはこちらからが速くダウンロードできます。 展開して opencv2.framework フォルダを生成します。 Xcode を起動して "Create a new X
1年以上ぶりですがまだ息してますよ、こんばんは。 転職しまして2014年の4月から東京で暮らしてます。そのせいかあまり暇もなくなりOpenCVjsなにそれ状態です。しかたねえので話題を変えて今回はAppleがくそ迷惑にも新言語Swiftを発表しやがったので、SwiftでOpenCV使えんの!?を検証しました。 結論から言うと出来ました。そんなわけでSwiftでOpenCVを使うまでを解説します。 アメブロに全然慣れないんでいつまで経っても見辛いブログですが勘弁してください。 xcode6のダウンロードやらは色んなサイトに載ってるので省きます。 xcode6を立ち上げていつも通りに新しいプロジェクトを立ち上げると特に変わったことない画面が開きます。いつも通りNextを押すといつも通りプロジェクト名とか聞かれますが、いつもと違って赤で囲ってるところがSwiftになってる!!!!! ここでSwi
過去記事のXcode 7対応版です。 ※実機で動かす場合の注意を末尾に追加。 a244.hateblo.jp cocoapods で環境構築。前提はXcode 7.0.1、Swift 2。 新規プロジェクトを作ることを前提にします。 Podfile の作成 注意点としては、 確実にXcodeを終了しておく デフォルトでインストールされているrubyを使う cocoapods 側はOS標準のrubyを使うことを推奨していたはずなので。 プロジェクトのルートフォルダへ移動し、Xcodeを終了させておく。 pod init Podfileを編集する。2行目、4行目のコメントを外す。platformのiosバージョンはサポート対象に合わせて変更。 Tesseract-OCR-iOSの安定板(4.0.0)ではうまくビルドできないので、開発版を用いる。 逆に言うと、Swift 1.2とXcode 6.
TesseractOCR for iOSとは 画像から文字を認識してくれるライブラリです。 こんな感じ CocoaPodから利用できるのも美味しいです。 TesseractOCR for iOS https://cocoapods.org/?q=tess サンプルをgithubにあげましたので、参考にしてみてください。 https://github.com/ktanaka117/TesseractTestWithSwift 導入手順 1.プロジェクトファイルを作ってPodのインストール Podfileの中身はこんな感じです。 platform :ios, '7.0' pod 'TesseractOCRiOS', '~> 4.0.0' 2.言語データファイルをプロジェクトにimportする ここのリストから使用したい言語データファイルをダウンロードします。 https://code.goog
この文書について 以下に書かれた内容をSwiftで書きなおしただけです。 - http://qiita.com/hkato193/items/c0327e4c56ccf1c15e7d やり方 CMSampleBuffer -> CVImageBufferRef -> CIImage -> CGImage -> UIImage という順序で変換していくとUIImageが得られます。 サンプルコード //CMSampleBufferをUIImageに変換する func UIImageFromCMSamleBuffer(buffer:CMSampleBuffer)-> UIImage { // サンプルバッファからピクセルバッファを取り出す let pixelBuffer:CVImageBufferRef = CMSampleBufferGetImageBuffer(buffer)! // ピク
はじめに キーボード非表示時には画面下に配置され、キーボードが表示された時には「キーボードの移動に追従して」移動するViewを作ってみました。 キーボードが表示/非表示された事をNSNotificationCenterで拾って、その後UIView.animationWithDuration()にてアニメーションしながらViewが移動します。このアニメーションにはAutolayoutの制約を使います。 サンプルコード Storyboardの構成 Storyboard上の構成では、「アニメーションで移動するViewの底」と「ViewControllerの底(Bottom Layout Guide)」の間に、高さの制約を作ります。またこれをIBOutletとしてViewControllerに接続しておきます。 この高さ制約の値は0としておきます。キーボードが表示された時には、この値をアニメーショ
環境: Swift2.0 アプリ内にデータを保存する場合、どこに保存するのかを調べた。 だいたい以下のディレクトリ(またはこれらの中に作成したサブディレクトリ)のどれかに保存することになるようだ。 Documents/ Library/ Library/Application Support/ Library/Caches/ tmp/ 保存するデータの内容によって使い分ける必要がある。 Apple のガイド https://developer.apple.com/jp/documentation/FileSystemProgrammingGuide.pdf から引用する。 Documents/ ユーザが生成したデータを保存するために使います。ファイル共有の機能により、ユーザはこのディレクトリ以下にアクセスできます。したがって、ユーザに見せても構わないファイルのみ置いてくだ
今回のエンジニアブログを担当する村田です。 本日は、Swiftではデータ永続化の記述はどうなるか まとめてみました。 確認バージョン:Xcode 6 beta 4, beta 5 Objective-Cには、簡単なデータ永続化として NSKeyedArchiverを使ったオブジェクトのアーカイブ プロパティリストを使ったデータ保存 NSUserDefaultsを使ったデータ保存 があります。 もちろんSwiftでも健在です。 「Core Data」や「SQLite」を使った方法もありますが、 お手軽なデータ永続化としては上記の方法ではないでしょうか。 それぞれ、Swiftではどのような記述になるでしょうか。 でもその前に... パスの取得方法 プログラムから操作するパスとして、以下の3つがあります。 /Documents アプリがファイルを作成して保存できる領域 /Library/Cach
C言語スタイル for ループの廃止 C言語スタイルの for ループが Swift 3.0 で廃止される見込みの為(エラーメッセージには将来のみたいな表現だけど)、これまでこのスタイルで書いてきた for ループを書き直さないといけなくなりました。そこで、典型的なパターンを書き直す方法をまとめてみました。 for var i = 0 ; i < 100 ; i++ もっとも典型的な C言語スタイルの for ループ、0 から 100 未満の for ループの場合です。
swiftで日付比較する時、以下のような感じで判定する // 現在日付がdateDue(期限)を過ぎたらtrueを返す let now = NSDate() if dateDue.compare(now) == NSComparisonResult.OrderedAscending { return true }else{ return false } 分かりにくい... 覚え方として 【1】.compare(【2】) == NSComparisonResult.OrderedAscending とあるとすると 【1】【2】と並べた時にAscending(昇順)ならtrue と読み替える ご参考になれば。
Xcode - Swiftのメソッド毎のコンパイル時間を計測してビルド時間を短縮する - Qiita がすごく便利そうなので試してみたのですが、結果のテキストが長すぎたのでコンパイル時間の長い順に表示するスクリプトを書きました。 ついでに cocoapods 管理下のファイルは結果に含めないようにしてみました。 スクリプトはこちら 使い方 元記事と同様に以下を実行 Other Swift Flagsに -Xfrontend -debug-time-function-bodies を追加 xctool -workspace './xyz.xcworkspace' -scheme 'SchemeName' -jobs 1 clean build | tee build_in_detail.txt 1 生成されたビルド結果のテキストファイルで cat build_in_detail.txt |
Profiling your Swift compilation times January 18, 2016 · 3 minute read UPDATE: It’s possible to do this entirely from the command line, without modifying your Xcode project at all. Simply run the following (thanks to Mike Skiba and Eric Slosser for their help with this): xcodebuild -workspace App.xcworkspace -scheme App clean build OTHER_SWIFT_FLAGS="-Xfrontend -debug-time-function-bodies" | grep
UITextViewにFacebookのような「続きを読む」ボタンを追加する方法をご紹介します。 iOS7から導入されたTextKitを使用します。 ご紹介するこのサンプルでは、UITextViewに表示する行数をあらかじめ決めています。 例えば表示する行数が3行で、UITextViewに設定されたテキストが5行分の長さだった場合、 3行目の後ろ何文字かを「続きを読む」に置換します。4行目、5行目については、元のテキストから 削除してしまいます。 また、置換により挿入した「続きを読む」がタップされた場合、それを検知して 何らかの処理を行います。最初に「続きを読む」ボタンと言いましたが、 実際にはボタンではなく、タップされた位置に表示されている文字のインデックスから、 「続きを読む」がタップされたことを検知します。 では、まず、表示範囲内の最終行の一部文字列を「続きを読む」に置換する部分を
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く