当前位置: 首页 > 知识库问答 >
问题:

如何在android中对ImageProxy或位图应用透视变换

景信瑞
2023-03-14

我的目标是通过Scratch创建一个扫描仪应用程序。为了做到这一点,我正在使用Java android中的CameraX库。假设我已经检测到了页面的边角。图像捕获后,我如何对图像执行变换矩阵乘法?(除了尝试在Java中这样做外,我遵循了这里提到的算法)我需要一个矩阵中的图像,这样我就可以用我的3x3变换矩阵乘以每个像素位置,比如[I,j,1]来得到新的位置。然后,我会有另一个矩阵,在那里我记录像素的颜色,如果它是在我想要显示的区域内被转换。最后,我将把最后的矩阵转换成一个图像。

因此,基本上,我的问题是:

  1. 如何在Java的camerax中对捕获的图像执行操作
  2. 如何将图像转换为矩阵(进行上述操作),然后将矩阵转换为图像

我想要它,以便当用户单击capture按钮时,记录文档边角的最新坐标,并使用变换矩阵来变换所捕获的图像。

共有1个答案

党俊健
2023-03-14

android.graphics.matrix是Android中的3x3透视转换矩阵。示例:

val matrix = Matrix()
matrix.setPolyToPoly(docVertexes, 0, bitmapVertexes, 0, 4)
Bitmap transformedBitmap = Bitmap.createBitmap(
            sourceBitmap,
            0,
            0,
            sourceBitmap.getWidth(),
            sourceBitmap.getHeight(),
            quadToRect,
            true);
 类似资料:
  • 问题内容: 我在/ res / layout /中有一个自定义微调下拉XML文件: 我通过java设置微调框下拉列表: 不幸的是,无论我是否将背景设置为透明,微调框弹出窗口上仍存在白色背景。 我该如何解决? 问题答案: 您可以使用继承自其中一个Android主题的应用中的主题来覆盖下拉菜单和下拉菜单项的样式,然后覆盖 ,或,甚至主题的属性,都指向您自己的自定义样式,而不是其主题中定义的Androi

  • 问题内容: 我在下面的表A中,对于每个唯一的ID,都有三个带有某些值的代码。 我有第二个表B,其格式如下: 每个唯一ID仅一行。我想为第一个表中的每个ID填充第一个表A中的第二个表B。 对于上面的第一个表A,第二个表B应该显示为: 如何在单个SQL查询中实现此目标? 问题答案: 如果您的版本没有,您也可以使用以下命令: (在我的V6R1 DB2实例上工作,并有一个SQL Fiddle示例)。

  • 如果我显示一个位图作为背景,然后在上面绘制另外三个较小的位图,有没有办法在不影响其他三个位图的情况下淡入背景? 基本上,我想做的是将三个“精灵按钮”和一个徽标图像移动到屏幕上,在游戏屏幕的顶部,并在按钮显示时使背景淡入淡出。当按钮移开时,我希望背景再次淡入。 有什么想法吗? 看,这最初是一个设计问题。在我做出promise之前,我需要看看这是否可行。 我有背景。在这方面,我想展示3个“精灵”。我想

  • eclipse中的package explorer只显示在Java选项卡(透视图)上,但我也希望在调试模式下显示它。有办法做到吗?我在调试模式下的Windows->Show view中找不到它,但在java模式下它是存在的(实际上,这是project explorer,但看起来是一样的)

  • 我正在电子中设计一个应用程序,因此我可以访问CSS变量。我在中定义了一个颜色变量: 我想在中使用这种颜色,但应用了一些不透明度: 我该如何着手做这件事?我没有使用任何预处理器,只有CSS。我更喜欢全CSS的答案,但我会接受JavaScript/jQuery。 我不能使用因为我使用的背景图像不应该是透明的。

  • 利用CALayer 实现对视图进行三维变形和变换过渡效果。 [Code4App.com]