web-dev-qa-db-ja.com

android画像処理チュートリアル?

誰もがAndroid用の良い画像処理チュートリアルを知っていますか?私はAndroidが初めてで、ビットマップにエフェクトをかけるアプリをコーディングしています。 Javaにはたくさんのチュートリアルがありますが、Androidはawtをサポートしていません。Android sdkを使用してビットマップのピクセルを操作したいですたとえば、ワープ、魚眼レンズなど。ピクセルにアクセスして色を変更することはできますが、変換はあまり得意ではなく、どこから始めればよいかわかりません。

24
turtleboy

これを確認してください([The Basics] 29の後にスクロールしてください):

http://xjaphx.wordpress.com/learning/tutorials/

次のような優れたチュートリアルがあります。

  • 平均除去効果
  • 滑らかな効果
  • エンボス効果
  • 彫刻効果
  • 色の強度を上げる
  • 角の丸い画像
  • オンザフライでの透かし
  • 画像反転/ミラーリング
  • ピクセルカラー置換
  • 色合いの色
  • ノミ/ノイズ効果
  • 黒フィルター(暗闇の増加)
  • 雪の影響
  • 遮光フィルター
  • 彩度フィルター
  • 色相フィルター
  • 画像反射効果
  • 曲線上にテキストを描く
18
Oded Breiner

また、opencv libへのバインディングを持つJavaオブジェクトを提供するJavaCVをチェックアウトすることもできます。この方法では、c/c ++コーディングを行う必要はありません。すべてをJavaで直接実行し、opencvから関数にアクセスできます。

Googleコードプロジェクト

フォローアップの質問への回答:

たとえば、円筒投影をします。画像を見てください-

image

(申し訳ありませんが、写真を投稿することはできません)これはSzeliskisの本( http://szeliski.org/Book/ )から取られています。最後にここにある関係は

x'=s*tan⁻¹(x/f) 

そして

y'=s*(y/sqrt(x²+f²)) 

fはカメラの焦点距離、sは円柱の半径です。f= sを使用できます。これをループに入れるために、ここにいくつかの擬似コードがあります:

%% xMitte , yMitte are the coordinates for the point in the middle
for yNeu =1: height
   for xNeu =1: width
      dx = xNeu - xMitte ; %% X relativ to Origin
      dy = yNeu - yMitte ; %% Y relativ to Origin
      theta = atan(dx / f);
      h = dy / sqrt(dx ^2+f^2);
      x = (f * theta) + xMitte ;
      y = (f * h) + yMitte ;
      BildNeu (xNeu ,yNeu) = BildAlt (x, y);
   end
end

BildNeuは新しい画像であり、この配列のサイズはBildAlt(元の画像)と同じです。

内側のループの終わりにBildNeuとBildAltを含むLineは次のようになります。

/** returns the color value of that pixel **/
CvScalar pixel = cvGet2D(originalImage, i, j);
/** writes the new color value of that pixel **/
cvSet2D(destinationImage, y, x, pixel);
8
rac2030

OpenCV Androidは、Androidプラットフォームでの使いやすさから好まれますが、制限があるかもしれません。

1。Androidプラットフォームでの画像処理を学ぶ最良の方法は、実装です。Android Studio/Eclipseで既存のOpenCV4Androidサンプルを実行して理解してみてください。 https://github.com/joaopedronardari/OpenCV-AndroidSamples で利用できます。

各サンプルの説明は、OpenCVAndroidサンプルページで入手できます。混合処理、カメラ制御、画像操作、カラーブロブ検出は、前処理と画像操作を処理します。それらは以下を含む:

RGBAおよびGRAYプレビュー

キャニー(エッジ検出)

機能を見つける

色の効果

ヒストグラム

セピア

ソーベルフィルター

ズーム

ピクセル化

ポスタライズ

流域変換

マーカー(ブロブ検出)

  1. Javaプラットフォームで作業するため、OpenCV Javaチュートリアルが役立ちます。

  2. http://web.stanford.edu/class/ee368/Android/ にはサンプルプロジェクトがあります。

4.画像処理ライブラリについては、Android Arsenalをご覧ください。

注:デバイス画面(ImageView)に表示するには、MatオブジェクトをBitmapオブジェクトに変換する必要があります。

3
Sukriti

おそらく、あなたは OpenCV Java bindings である程度成功するでしょう。

0