问题标签 [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.
java - 在java中旋转图像
我正在寻找旋转图像。我有一个JInternalFrame
包含一个JLabel
. 标签包含图像。图像旋转后,我需要调整内部框架的大小。我目前拥有的代码旋转图像,但图像边缘周围有黑色并且它偏离中心。对于如何解决这个问题,有任何的建议吗?
java - Java awt/swing AffineTransformation 在形状周围移动
一次绘制数百个圆形动画的程序不会流畅地绘制它们。建议使用仿射变换来复制形状。这段代码被重构为使用 graphics2D,可以工作,但不会导致任何性能提升,因为它仍在填充数百个椭圆。如何正确使用仿射变换来填充形状一次然后复制/移动它?
}
java - JComponent JPanel 缩放、平移和坐标问题
我有一个JPanel
用户可以缩放和平移的矢量图像。覆盖此图像的是 (transparent) JComponent
,我允许用户注释底层图像。这在全尺寸下效果很好,但如果我放大,使用AffineTransform
,重叠坐标也会受到影响。因此,如果用户在图像上绘制一个框,该框也会被缩放。
关于如何解耦这种行为的任何建议?这样JComponent
就不受 的影响JPanel
了AffineTransform
?
gtk - gtk 中的仿射变换
我需要使用 gtk 框架进行一些仿射变换操作。
我找到了 cairo,但这并不能解决我的要求。我需要创建转换对象并进行一些操作,如下所示:
- [transform1 translateXBy:2.5 yBy:3.8];
- [transform1 rotateByDegrees:23.0];
- [transform1 appendTransform:transform2];
其中 transform1、transform2 是 AffineTransformation 的对象。
问候, iSight
ios - 如何在 IOS 4 中直接旋转 CVImageBuffer 图像而不转换为 UIImage?
我在 iPhone 上使用 OpenCV 2.2 来检测人脸。我正在使用 IOS 4 的 AVCaptureSession 来访问摄像头流,如下面的代码所示。
我的挑战是视频帧以 CVBufferRef(指向 CVImageBuffer 的指针)对象的形式出现,它们以风景的形式出现,480px 宽 x 300px 高。如果您将手机横向握持,这很好,但是当手机处于直立位置时,我想将这些框架顺时针旋转 90 度,以便 OpenCV 可以正确找到面部。
我可以将 CVBufferRef 转换为 CGImage,然后转换为 UIImage,然后旋转,就像这个人正在做的那样:Rotate CGImage take from video frame
但是,这会浪费大量 CPU。我正在寻找一种更快的方法来旋转传入的图像,如果可能的话,最好使用 GPU 进行此处理。
有任何想法吗?
伊恩
代码示例:
java - 如何使用 AffineTransform 旋转并保持原始坐标系?
我是在 Java Swing 上旋转和翻译形状的命令模式翻译和旋转可以分开工作,但是当我做 60 度时。旋转然后平移,平移跟随新的旋转坐标。这意味着如果我拖动鼠标,形状与鼠标运动矢量之间的间隙为 60 度,有什么简单的解决方案吗?请帮忙,我在这里撞墙
我的旋转执行方法
我的翻译执行方法
任何帮助都将不胜感激
c# - Emgu (OpenCV) 的转换 - 仿射/透视?
我目前正在尝试通过使用 EMGU 来实现转换,尽管我似乎无法理解它是如何工作的(而且似乎没有任何在线示例)。
我有我的图像,我希望从(和到)转换 4 个点,虽然我不知道还需要什么其他变量,但它要求 'mapMat' ?
这是我到目前为止所拥有的:
然而这不起作用。我也不确定仿射变换是否是最理想的解决方案?我也读过一些关于 FindHomography 和透视变换的东西,但不确定它们是否适用于这里。
我希望实现的目标转换是这样的:
http://img832.imageshack.us/img832/5157/targettransform.png
任何帮助将不胜感激,
谢谢
java - Java - 亚像素线精度是否需要 AffineTransform?
我以前从未使用过 Java 绘图方法,因此我决定深入研究并创建一个模拟时钟作为 PoC。除了指针之外,我还绘制了一个包含分钟/小时刻度线的钟面。我使用简单的 sin/cos 计算来确定圆周围线条的位置。
但是,我注意到由于分钟刻度线很短,线条的角度看起来不对。我确定这是因为Graphics2D.drawLine()
和Line2D.double()
方法都不能以亚像素精度绘制。
我知道我可以画出从中心开始的线条并用一个圆圈将其遮住(以创建更长、更准确的线条),但这似乎是一个不雅且昂贵的解决方案。我已经对如何做到这一点进行了一些研究,但我遇到的最佳答案是使用AffineTransform
. 我假设我只能使用AffineTransform
with 旋转,而不是必须执行超级采样。
这是以亚像素精度绘制的唯一/最佳方法吗?还是有可能更快的解决方案?
编辑:我已经RenderingHint
为Graphics2D
对象设置了 a 。
根据要求,这里有一些代码(没有完全优化,因为这只是一个 PoC):
这是绘图的屏幕截图。可能有点难以看清,但请查看 59 分钟的刻度线。它是完全垂直的。
java - AffineTransform 不转换 Stroke?
当使用scale()
具有两个不同参数的 Graphics2D 函数(在 x 和 y 方向上按不同比例缩放)时,稍后在此 Graphics2D 对象上绘制的所有内容也会被缩放。这有一种奇怪的效果,即在一个方向上绘制的线比在另一个方向上的线更粗。下面的程序产生了这种效果,它显示了这个窗口:
我正在使用此坐标变换来避免必须手动将我的应用程序模型坐标(本示例中的 (2,1, 2,4))转换为屏幕(或组件)像素坐标,但我不希望这种笔画失真. 换句话说,我希望所有线条都具有相同的宽度,与当前的 x 和 y 比例因子无关。
我知道是什么产生了这种效果(Stroke 对象创建了要在用户坐标中绘制的矩形的描边形状,然后将其转换为屏幕坐标),但我不确定如何解决这个问题。
- 我是否应该创建一个新的 Stroke 实现,在 X 和 Y 方向上以不同的方式描边 Shapes(从而在此处撤消失真)?(或者是否有人已经知道这样的实现?)
- 我应该将我的形状转换为屏幕坐标并在那里描边吗?
- 还有其他(更好的)想法吗?
raphael - Raphael.js 中的变换矩阵
我希望将 2D 仿射变换矩阵应用于我在 Raphael 中创建的椭圆。我知道底层 SVG 可以支持这一点,但 Raphael 是否提供了一种访问它的方法?
我尝试过自己解析变换矩阵,手动计算旋转、缩放和平移并在 Raphael 中应用,但它似乎不起作用,我认为必须有更好的方法?
非常感谢,威尔。