将图像转换为线段数组以绘制。

如何在拥有图像像素数据的情况下生成要绘制的行列表,以便不必绘制每个像素? 任何语言都可以,尽管我列出了我已经掌握的语言。C也可以。我可以选择的标签有限。另外,您可以向我指出一个算法。

原文链接 https://stackoverflow.com/questions/3878873

点赞
stackoverflow用户466694
stackoverflow用户466694

你如何用线来完成像素所能完成的任务?我认为你需要逐个绘制每个像素。

2010-10-07 06:04:23
stackoverflow用户15721
stackoverflow用户15721

一般来说,位图存储在顺序存储器中,非常适合于在显示器上进行“ blitting”;您选择的GUI框架将具有绘制位图的函数,并且该函数将经过精心优化。

另一方面,将图像分解为线条 - 将图像向量化 - 是专业程序和持续研究的领域。在所有情况下,与只是复制位图相比,计算和绘制都要_慢一些_。

2010-10-07 06:10:16
stackoverflow用户165216
stackoverflow用户165216

你正在寻找“光栅到矢量”算法。这个术语来自早期的图形显示系统,使用的是阴极射线管(CRT)进行显示。有两种显示图形的方法:“光栅化”是从左到右,从上到下一系列线的扫描,每条线由开/关像素组成。CRT的电子枪控制器简单地反复扫描相同的图案,只是改变电子束的强度。在“矢量”显示上,电子枪可以在任何两点之间画一条直线——没有混淆,没有像素化,只有一条纯直线。矢量显示具有更高的分辨率,但受到可以绘制的线条数量的限制——如果绘图中有太多的线条,那么,当重新绘制图像的时间(刷新CRT荧光粉的时间)需要比CRT荧光表面的持久力更长时,显示屏将开始闪烁。光栅显示更简单,抖动更少,但分辨率更低。

2010-10-07 09:22:37
stackoverflow用户107090
stackoverflow用户107090

如果你想从图像中提取出线条,请尝试使用 霍夫变换

同样,可以查看《图形珠宝V》上的 _可逆直线边缘重建_,该代码可在线查看:http://tog.acm.org/resources/GraphicsGems/gemsv/ch6-5/

2010-10-07 10:49:06
stackoverflow用户469865
stackoverflow用户469865

Opencv 有命名为 "cvHoughLines2" 的函数用于检测直线。

2010-10-09 03:01:51