上記ファイルを作成しましょう。ファイルを作成したら、実装ファイルの拡張子を.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を使ってスマホのカメラプレビューで取得する画像にリアルタイムでエッジ検出処理をやってみました。 こんな感じです。 なんかロトスコープアニメーション見たいになります。 エッジ検出は、OpenCVを利用しCannyエッジ検出しています。それで得られた画像を白黒反転させて表示しています。 ざっくりやり方を説明すると、 ・AndroidStadioプロジェクトにOpenCV SDKをインポート ・カメラプレビュー画像を取得(Camera.PreviewCallback) ・取得した画像(NV21フォーマット)をグレースケールMat形式に変換 ・Canny変換 ・変換した画像を表示 といった手順です。 カメラはAPI21以降はCamera2が推奨されていますが、今回は使用していません。 エッジ画像はカメラプレビューを表示するSurfaceView上に別Viewをオーバーラップして表示させ
retrofitはHTTPクライアントだけあって当然formの要素や画像のようなマルチパートなものもPOSTできるのだけど、その方法があんまり見つからなかったので覚書。見つからなかったというよりか、現状の最新安定バージョンの2.0でのPOSTの方法と過去のバージョン1.9での方法がかなり違う上に1.9での情報ばっかりがあふれていたので見つけにくかった…というだけだったのだけど。 概要 1.9ではTypedFileというクラスを使ってそれに画像なり何なりをいれてPOSTするのだけど、2.0ではRequestBodyにPOSTしたい要素を入れるようにする。 インターフェース部分は以下のように。@Multipartアノテーションと@Partアノテーションを使う。@Partアノテーションをつけた引数としてRequestBodyを指定する。 public interface FileUploadSe
Androidにおける リアルタイムカメラエフェクト実装の 手法について NBS NBS NBS NBS開発統轄部 開発統轄部 開発統轄部 開発統轄部NB NB NB NB開発 開発 開発 開発センター センター センター センター 鵜川 鵜川 鵜川 鵜川 裕文 裕文 裕文 裕文 TwitterID TwitterID TwitterID TwitterID awaku7 awaku7 awaku7 awaku7 2010 2010 2010 2010年 年 年 年8 8 8 8月 月 月 月28 28 28 28日 日 日 日 Agenda � 少し弊社のご紹介(口頭で) � カメラアプリの仕組み � リアルタイムエフェクト? � リアルタイムエフェクトカメラの作り方 カメラは楽しい � ほとんどの携帯電話にカメラが付いており 多くの人が利用している � 携帯電話で画像編集が出来るように
TabHostとTabLayoutについて 前回、AndroidでTabHostを使ったアプリの作り方について見ていきましたが、本日は TabLayout を使ったアプリの作り方を見ていきたいと思います。 なぜ似たような名前のクラスがあるのかと思いますよね? 実はTabHostはもう随分前から非推奨とされており、同様の機能を実装するために TabLayout が提供されているようなんです。 もう少し、詳しく説明すると、 『Google I/O 2014』にてMaterial Designが発表されました。 (これはGoogleが提唱するパソコンやスマートフォン向けのアプリまたはWebサイト等の新しいデザイン方式です。) そして、『Google I/O 2015』にてMaterial Designを実現するためのサポートライブラリ『 Android Design Support Librar
前に GCM のサンプルを書いたのですが Deprecated になって GCM-3.0 がでていました。 って言うか 2.0 の存在にすら気づいていませんでしたw 2年間で2回のAPI変更が有ったようです。しかも後方互換性無しに。 似たような事多いですが最近の Google の方向性なんでしょうかね。 基本情報 基本的な情報へのリンクです。 Google IO 2015で発表されたGCM (Google Cloud Messaging)の新機能 GCM公式 公式サンプル GCMの仕組み GCMの基本的な仕組み依然と変わっていません。 (1) アプリ起動後、GCMサーバから 端末ID を取得します。 (2) ユーザID と 端末ID のペアをアプリサーバに送信してDBに保存します。 (3) 目的の ユーザ に向けた メッセージ をアプリサーバに送信します。 (4) アプリサーバは ユーザI
I get the following error while upgrading a firebase project from old domain to new google firebase domain. Failed to resolve: com.google.firebase:firebase-core:9.0.0 I followed the steps mentioned on the Firebase documentation, in the section Add Firebase to your Android Project, topic Available libraries. What are my options to resolve this error?
画像処理ではRGB形式の他にYUV形式がある。 YUV形式のフォーマットは一般にPlanar, Semi-Planar, Interleavedの3つある。 尚ここでCr == V、Cv == U と同じ意味であることに注意。 planarはそれぞれのYUVのチャンネル毎にまとめてデータが置かれている。 semi-planarはYだけデータが置かれており、UVは交互に並んでいる。 interleavedはYUVが交互に並んで置かれている。 444であれば、それぞれのチャンネルはフルでサイズ分もっており、 422であればYだけフル、U, Vは1/2ずつ、 420(別名411)はYだけフル、U, Vは1/4ずつ持つ。 422, 420にする理由はデータ量圧縮のためである。 Androidにおいてカメラデバイスから来るフォーマットはAndroidは420 semiplanar( 420SP )で
このエントリーはtech.kayac.com Advent Calendar 2013の13日目のエントリーです。 @DevMassive です。 画像や動画を処理します。 カメラ使ったこと無いよっていうAndroiderはいないと思いますが、 カメラのByte列を扱ったことないderもいるのではないでしょうか。 最近のAndroidはOpenCVやらSurfaceTextureやら、 byte列いじらなくてもカメラを使っていろいろできちゃいますが、 いじっておきましょう!! というわけで本日はすごく素朴な画像処理アプリをつくります。 カンタンな画像処理 スリットスキャンをつくります! スリットスキャンを知らない人も多いだろうし、 僕もよく知らないですが、動画を見ればわかります! これです。 不思議な感じですが、タネを見破ることができたでしょうか? 一番下の行は現在のフレーム、 その上の行
Migrate from Retrofit to Retrofit2 (Retrofit から Retrofit2 に移行する) retrofit2 が正式リリースされました。 retrofit/CHANGELOG.md at master · square/retrofit retrofit との後方互換性はありません。そのため maven の group id が com.squareup.retrofit2 になっています。 compile 'com.squareup.retrofit2:retrofit:2.0.0' Converter GSON などの Converter は別のモジュールに分割されました。 retrofit new RestAdapter.Builder() .setConverter(new GsonConverter(gson)) ... retrofit2
Build variant毎に定数の値を変えたい場合, 下記のようにすることで実現できる. productFlavors { development { buildConfigField "boolean", "PRODUCTION_MODE", "false" } production { buildConfigField "boolean", "PRODUCTION_MODE", "true" } } しかし, この例ではプロダクションモードを判定する下記のようなif文を書いた場合にAndroidStudioがwaningをあげてくる. // これだとBuild variantによってPRODUCTION_MODEが常に // true/false固定となり, AndroidStudioがシンプル化をすすめてくる. if (BuildConfig.PRODUCTION_MODE) {
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く