问题标签 [affinetransform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2799 浏览

opencv - OpenCV 从一个三角形扭曲到另一个三角形

我想将 OpenCV Mat 中的一个三角形映射到另一个三角形,就像 warpAffine 所做的一样(在此处查看),但对于三角形而不是四边形,以便在 Delaunay 三角剖分中使用它。

我知道可以使用口罩,但我想知道是否有更好的解决方案。

0 投票
1 回答
608 浏览

java - 使用 Affine Trasform 缩放时 JPanel 不绘制

我的应用程序布局类似于:自定义 JFrame(仅处理 gui 的创建),其中包含一个标准 JPanel,其中包含一个自定义 JPanel

在名为 MinimapPanel 的自定义 JPanel 中,我更改了绘制方法:

如果我不应用 trasform,或者缩放比例为 1.0(无),一切正常,但如果我缩放,每次 JFrame 重新绘制时,MinimapPanel 都保持空白。

关于我可能做错了什么的任何想法?

0 投票
2 回答
1945 浏览

java - AffineTransform 截断图像

我有一张图像,我必须将它旋转 45、90、135、180 度。我在做什么:

问题是图像改变了它的位置并超出了目标图像的范围:

问题

我用谷歌搜索了这个并在这个问题中找到了解决方案:AffineTransform truncates image, 我错了什么?但我完全不明白,它只适用于象限。我试图将目的地的宽度和高度乘以两倍,但它失败了:

又一次失败

如何解决这个问题?目标图像不应有任何额外的(对角旋转所需的除外)空白或截断区域。角度问题(0 == 180 或顺时针)并不重要。

谢谢你的帮助。

0 投票
1 回答
433 浏览

java - AffineTransform 旋转使保存的图像为空

好的,我的问题很简单,在执行 AffineTransform 之后,我的图像没有正确保存(但是它正确地绘制在 JPanel 上!)。这真的很奇怪,所以任何提示都非常感谢......

看一下代码:

正确保存 filterORIG 之前的文件 -> 有一个图像,但它已预先旋转。

File AFTER... 保存为空白文件。

真正有趣的是,前面提到的事实是,这种转换在我用作显示器的 JPanel 上被普遍显示(我可以观察到所需转换的效果)

任何帮助表示赞赏...

0 投票
0 回答
905 浏览

java - 旋转缓冲图像(对角线文本)

(对不起链接,我是新手,我不能发布图片)

我想完成以下任务:创建一个顶部带有图例的表格,并以对角线方式。

http://i.stack.imgur.com/HqtJL.png

但我遇到了一些问题,我有以下图像,我正在尝试将其旋转 45º(结果在右侧),

http://i.stack.imgur.com/KOlIK.png

这是我的代码:

我尝试了以下方法:

结果是第二个图像2中的右侧图像

所以我需要应用翻译才能把它放到正确的位置

有人可以解释一下 affineTransform 是如何工作的,或者我怎样才能让文本以对角线的方式呈现。

谢谢

0 投票
2 回答
717 浏览

core-animation - CGAffineTransform:将比例应用于翻译,如何?

Apple 使用的仿射变换将“比例”定义为“不影响翻译”

在我看来,这完全错误,并且与我对正常仿射变换的期望不符(其中比例乘以平移确实会影响平移),并且使得处理现实世界的问题变得极其困难,其中“缩放”预计将缩放整个坐标系,而不仅仅是一次单个对象的局部坐标。

Apple 的库中是否有解决此问题的安全方法(即使“比例”适用于整个矩阵,而不仅仅是非翻译部分)?

还是我犯了一个愚蠢的错误,完全误解了缩放发生了什么,不知何故?

0 投票
1 回答
1586 浏览

math - 两个三角形之间的相似变换

我有两个 2D 三角形(即它们都位于平面内),并且想找到将其中一个最接近地映射到另一个上的相似变换(旋转 + 缩放 + 平移)。

这两个三角形实际上并不相似,所以我只想让变换尽可能地对齐它们。

我知道我可以在两个三角形之间创建一个仿射变换,它将一个精确地映射到另一个,但我不想要仿射变换中存在的剪切效应。我希望我的变换仅由平移、旋转和缩放组成。

知道怎么做吗?

0 投票
0 回答
417 浏览

java - 显示、缩放和缩放巨大的自定义绘画

我必须绘制一些点和一个多边形来将它们连接在一起。自定义绘画将在带有 JScrollPane 的 JPanel 上完成,并通过 AffineTransformation 支持一些缩放/缩放。在将 JPanel 首选尺寸设置为由点坐标定义的所需尺寸并进行重新验证后,绘图将正确显示并且可以滚动。只要点坐标不超过数据类型整数、缩放和 Dimension 类的限制设置的某些限制,一切都很好。

示例:想象坐标处的四个点

它们定义了以原点为中心的正方形的角。我的paintComponent 方法的简写形式:

虽然 zoomFactor == 1.0 一个像素等于一个坐标值。

由于它们的构造函数Point(int, int),这些点可以通过 [Integer.MIN_VALUE, Integer.MAX_VALUE] 放置在 [Integer.MIN_VALUE, Integer.MAX_VALUE] 的平面内。JPanels 的首选大小是 type Dimension(int,int)。通常宽度和高度的值是非负整数。

现在问题来自于巨大的坐标值:想象一组像这样的点:

我的第一个想法是引入另一个比例因子来缩小所有坐标值:

这将导致像素与坐标值的比率降低:viewZoomFactor = 1.0 处的 1 个像素 = 1/dataZoomFactor 坐标值。

当要绘制的点放置在上述极端位置时,如何实现整个绘图的 1:1 缩放、可滚动的可见部分?如果 viewZoomFactor > 1.0(放大镜)怎么办?

0 投票
5 回答
23394 浏览

c++ - findHomography、getPerspectiveTransform 和 getAffineTransform

这个问题是关于 OpenCV 函数的findHomographygetPerspectiveTransform&getAffineTransform

  1. findHomography和有什么区别getPerspectiveTransform?我从文档中的理解是,getPerspectiveTransform使用 4 个对应关系(这是计算单应性/透视变换所需的最小值)findHomography计算变换,即使您提供超过 4 个对应关系(大概使用最小二乘法之类的方法? )。这个对吗?(在这种情况下,OpenCV 仍然继续支持 getPerspectiveTransform 的唯一原因应该是遗留的?)

  2. 我的下一个问题是我想知道是否有findHomography计算仿射变换的等价物?即使用最小二乘法或等效稳健方法来计算和仿射变换的函数。根据文档getAffineTransform只接受 3 个对应关系(这是计算仿射变换所需的最小值)。

最好的,

0 投票
1 回答
323 浏览

java - Java AffineTransform 翻译不起作用

更新 原来我只是累了。这里没有任何问题很抱歉浪费您的时间。不用担心,我已将此标记为版主查看。

我的问题是,当我在 java 中翻译 bufferedimage 时,它​​会上下移动,同时在 x 轴上翻译它。为了更好地理解我的问题,请观看:
http ://www.youtube.com/watch?v=stwi1qVakp4

那么我的设置是什么:嗯,我所做的是在我的渲染方法中:

然后我会有一个keylistener,就像:

我认为这是发生的,因为当我旋转它时,它会改变 x,y 坐标,所以如果它是 90 度,x 和 y 就会改变。我只是不知道我是否可以绕过它。

只要告诉我你是否需要知道其他任何事情。谢谢, Javaman111