androidimage processing教程?

有谁知道任何好的image processing教程为Android? 我是新来的android,我正在编写一个应用程序,在一个位图的影响。 我可以在java中find很多教程,但是android不支持awt。 我想操纵位图中的像素,只是使用android sdk,例如变形,鱼眼等我可以访问像素,并改变他们的颜色,但我不太好转换,并不知道从哪里开始。

Solutions Collecting From Web of "androidimage processing教程?"

检查出来(在[The Basics] 29之后向下滚动):

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

有一些伟大的教程,如:

  • 平均去除效果
  • 顺利的效果
  • 浮雕的效果
  • 雕刻效果
  • 提高颜色强度
  • 圆angular图像
  • 在飞行水印
  • 图像翻转/镜像
  • 像素颜色replace
  • 色调
  • 跳蚤/噪音效应
  • 黑色滤镜(增加黑暗)
  • 雪效应
  • 阴影filter
  • 饱和度filter
  • 色调filter
  • 图像reflection效应
  • 在曲线上绘制文本

您还可以检出JavaCV,为Java对象提供与opencv lib的绑定。 这样你就不需要做任何c / c ++编码,你可以直接用Java完成所有的工作,并且可以通过opencv访问函数。

谷歌代码项目

回答你的后续问题:

例如,采取一个圆柱投影:看看图像 –

图片

(对不起,我不允许张贴图片)这是从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行可能类似于:

 /** 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); 

由于在Android平台上的易用性,OpenCV Android是首选,尽pipe可能有限制。 这里有一些可能有所帮助的参考:

1.在Android平台上学习image processing的最好方法是通过实现。 尝试运行并了解Android Studio / Eclipse上现有的OpenCV4Android示例。 它们在https://github.com/joaopedronardari/OpenCV-AndroidSamples上可用。

OpenCVAndroid Samples页面上提供了每个示例的说明。 混合处理,相机控制,image processing和颜色斑点检测处理预处理和image processing。 它们包括:

RGBA和灰色预览

Canny(边缘检测)

查找function

颜色效果

直方图

乌贼

索贝尔filter

放大

Pixelize

色调分离

stream域转型

标记(斑点检测)

  1. 由于您将在Java平台上工作,OpenCV Java教程将会被使用。

  2. http://web.stanford.edu/class/ee368/Android/有示例项目。

4.检查Android Arsenal,image processing库。

注意:必须将Mat对象转换为Bitmap对象,才能在设备屏幕(ImageView)上显示它。

也许你会用OpenCV的java绑定取得一些成功。 除此之外,没有什么我知道的将会有所帮助。