将图像转换为要绘制的线阵列

时间:2010-10-07 05:13:03

标签: c# c++ python image lua

如果我有图像的像素数据,如何生成要绘制的线条列表,所以我不必绘制每个像素?任何语言都可以,虽然我列出了我的工作知识。 C也没问题。我可以选择多少个标签是有限的。此外,您可以指出我的算法。

5 个答案:

答案 0 :(得分:1)

通常,位图存储在顺序存储器中,非常适合显示器的“blitting”;您选择的GUI框架将具有绘制位图的功能,并且将非常仔细地优化此功能。

另一方面,将图像分解为线条 - 矢量化图像 - 是专家计划和正在进行的研究的领域。在所有情况下,它将更慢到计算机而更慢来绘制而不仅仅是blit位图。

答案 1 :(得分:1)

您正在寻找“栅格到矢量”算法。该术语来自早期的图形显示系统,它使用CRT(阴极射线管)作为显示器本身。有两种显示图形的方法:“光栅”是从左到右,从上到下扫描一系列线条,每条线条由开/关像素组成。 CRT电子枪的控制器只是一遍又一遍地扫描相同的图案,只是改变电子束的强度。在“矢量”显示器上,电子枪可以在任意两点之间画一条直线 - 没有混叠,没有像素化,只是一条纯粹的直线。矢量显示器具有更高的分辨率,但受到可绘制线条数量的限制 - 如果图形线条过多,则显示器将开始闪烁,因为重绘图像所需的时间(刷新荧光粉) CRT的持续时间比CRT的荧光表面持续时间长。光栅显示更容易控制,闪烁更少,但分辨率更低。

答案 2 :(得分:1)

如果要从图像中提取线条,请尝试Hough transform。 , 还可以查看出现在图形宝石V中的可逆直线边缘重建。代码在http://tog.acm.org/resources/GraphicsGems/gemsv/ch6-5/上线

答案 3 :(得分:0)

如何通过线条实现与像素相关的功能?你需要单独绘制每个像素。

答案 4 :(得分:0)

Opencv具有名为“cvHoughLines2”的函数来检测行。