Articles of image processing

使用Android相机进行image processing

我想要使​​用onPreviewFrame在显示给用户之前(即应用颜色色调,棕褐色等)后处理图像。 据我所知,返回到callback的byte []数据在YUV420sp中编码。 有人一直在Java解码这个到RGB或使用NDK(本机代码)? 有没有人有一个函数的例子,将其解码为RGB以及之后如何使用RGB值? 谢谢。

计算透视变换目标图像的宽高比

我最近在OpenCV中实现了透视转换到我的Android应用程序。 几乎所有的工作都没有问题,但一方面需要做更多的工作。 问题是我不知道如何计算透视变换的目标图像的正确高宽比(不需要手动设置),以便它可以计算图像的高宽比与真实的大小东西/图像, 尽pipe相机的angular度 。 请注意,起始坐标不形成梯形,它确实形成一个四边形。 如果我有一张从大约45度拍摄的书的照片,我希望目标图像的纵横比与本书的纵横比几乎相同。 有2D照片很难,但CamScanner应用程序完美。 我已经做了非常简单的方法来计算我的目标图像的大小(没有期望它的工作,因为我想),但它使图像从45度angular约20%,当降低angular度的图像高度减less很显然,虽然CamScanner可以完美的完成angular度, 在这里,CamScanner保持目标图像(第二个)的纵横比与书本相同,即使在20度的angular度下,它也相当准确。 同时,我的代码看起来像这样(虽然计数目标图像的大小,我没有打算它的工作,因为我问这个问题): public static Mat PerspectiveTransform(Point[] cropCoordinates, float ratioW, float ratioH, Bitmap croppedImage) { if (cropCoordinates.length != 4) return null; double width1, width2, height1, height2, avgw, avgh; Mat src = new Mat(); List<Point> startCoords = new ArrayList<>(); List<Point> resultCoords = new ArrayList<>(); Utils.bitmapToMat(croppedImage, src); for (int […]

Android中的扩张和侵蚀

根据我的研究,在对图像进行二值化之后,可以使用扩张和侵蚀来弥合图像的空白。 我不确定是否需要使用cvSmooth 。

在android中的图像幻灯片示例?

我想在android中创build图像幻灯片。 我有很多图像在Android GridView现在我想要打开手动幻灯片,如果任何图像被点击,以便我可以查看它通过移动手指左侧或右侧的下一个和以前的图像,如android中内置的画廊。 任何一个指导我如何实现这一目标? 任何帮助,将不胜感激。

Android的图像效果?

我正在制作一个应用程序,允许用户点击一张图片,然后在图片上应用各种效果滤镜。 基本上,我想创build一个类似布丁相机的应用程序。 我研究了很多,并遇到了3个选项来做到这一点: 1)使用OpenCV手动执行所有的效果[不是我的第一优先,因为它使用了很多时间,但是如果一切都不成熟,就会这样做]。 2)使用像ImageMagick / ImageJ / Marvin这样的库,通过NDK移植到Android。 3)使用像jjil一样的库。 现在我想知道哪个是最好的方法。 我的优先事项是: 1)我想能够调整效果,也许创造自己的新的自定义效果。 2)我希望它能够快速运行,因为我希望我的应用程序能够快速响应。 3)我想使用一个最容易学习的库,因为我不是image processing方面的专家。 请帮忙!

我们可以使用较低版本的EffectFactory类

对于我的新任务,我想使用一些可以提供“海报效应”的库 。 我发现很多库像Aviary SDK和jhlabs ,是的,这些都很容易使用,但是这些使代码更重。 所以我一直在searchAndroid的API本身,可以做类似的任务。 经过很多RnD,我终于find了一个我的时间保护类EffectsFactory ,它提供了我想要的一样。 我也将其应用于我的任务。 但是在API级别14中添加了坏事,而我的应用至less应该兼容API级别8。 所以,我的问题是, 我可以使用EffectsFactory类的较低版本? 如果是,那么如何? 或者,如果否,那么我们是否有类似于effectfactory的Android SDK中的任何API? 请避免引用任何库或NDK的开放cv库。

在Android的乐谱图像上的线条检测

我正在开发关于光学音乐识别的Android项目。 我通过移动照相机拍了一张乐谱的照片,并尝试识别笔记和符号。 预处理后我对方法非常熟悉,但这些工作通常是在扫描仪的帮助下完成的。 (而不是我必须使用手机相机) 直观上,我首先使用hough变换来检测谱线(谱线),然后计算它们与水平轴之间的angular度并旋转图像的angular度。 这可以理论上工作,但houghfind线段和这些段的angular度是不一致的。 所以这是行不通的(也许是因为angular度的影响) 之后,我尝试了许多边缘检测和线条查找algorithm,但没有一个稳定。 (包括频域旋转和线段探测器) 现在我正在考虑一种类似于Android上文档扫描仪的新方法。 我尝试将我的图像转换为扫描文档的forms。 我想将我的图像与水平轴alignment,摆脱倾斜和透视的效果。 我想知道有没有人知道如何实现这个“文档扫描”。 或者,如果您有任何关于alignment文档或稳定的行检测的想法,这将对我未来的工作有很大的帮助。 谢谢。

Android中的小插曲

所以这是我在Android中的一个小插曲样式效果(图像是一个位图): public void vignette() { float radius = (float) (image.getWidth()/1.5); RadialGradient gradient = new RadialGradient(image.getWidth()/2, image.getHeight()/2, radius, Color.TRANSPARENT, Color.BLACK, Shader.TileMode.CLAMP); Canvas canvas = new Canvas(image); canvas.drawARGB(1, 0, 0, 0); final Paint paint = new Paint(); paint.setAntiAlias(true); paint.setColor(Color.BLACK); paint.setShader(gradient); final Rect rect = new Rect(0, 0, image.getWidth(), image.getHeight()); final RectF rectf = new RectF(rect); canvas.drawRect(rectf, paint); […]

Android中最快的移动对象识别和跟踪

我正在制作一个增强现实游戏,它需要识别和跟踪一个快速移动的对象。 我已经尝试了以下image processing库, 1. Opencv 2. BoofCv 3. FastCv 我曾经尝试过使用顶级域名(TLD)algorithm来跟踪对象,跟踪是成功的,但是性能确实需要改进。 如果对象移动得更快,则由于algorithm花费的处理时间,结果会花费时间。 我也尝试循环,像boofcvalgorithm的意思转移。 检查这些演示: OpenTLD使用FastCv Boofcv示范 在这两个演示中的对象跟踪似乎是好的,但计算需要时间。 我可以用下面的scheme去做这个更快, 提取待跟踪物体的r,g,bmatrix 取相机帧并将其转换为ar,g,bmatrix,并在相机框中search跟踪的目标matrix。 有没有更好的方法来做到这一点?

Android上的标记识别(识别Rubik的立方体)

我正在开发一个Android的增强现实应用程序,使用手机的相机来识别魔方的每个面上的彩色正方形的排列。 我不确定的一件事情是如何去检测和识别立方体每个面上的彩色正方形。 如果你看一个魔方,那么你可以看到,每个方块都是六种可能的颜色之一,并带有一个薄的黑色边框。 这导致我认为它应该相对简单地检测一个正方形,可能使用现有的标记检测API。 我的问题是真的,这里有人有任何图像识别和Android的经验吗? 理想情况下,我希望能够实现和现有的API,但如果有人能指引我正确的方向开始,这将是一个有趣的项目,从头开始。 提前谢谢了。