问题标签 [raster]
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.
algorithm - 将矢量轮廓区域(边界)转换为光栅图(像素网格)
我有一张地图,它像世界地图上的国家一样,被边界(轮廓)分割成多个区域。每个区域都有一定的地表覆盖等级S(例如 0 代表水,0.03 代表草......)。边界由以下方式定义:
- S的任一侧是什么值(在下面的示例中,一侧为 0.03,另一侧为 0.0)
- 边界由多少个点组成(在下面的示例中n =7),以及
- n 个坐标对 ( x , y )。
这是一个例子。
我想制作一个光栅图,其中每个像素的S值对应于像素中心所在的区域。
请注意,边框代表S中的阶跃变化。S的各种值代表离散的类别(例如草或水),并且不是可以平均的值(即没有湿草!)。
另请注意,并非所有边界都是像上面的示例一样的闭环。这有点像国家边界:例如,美国-加拿大边界不是一个封闭的循环,而是一条在每一端与另外两个边界相连的线:加拿大-海洋和美国-海洋“边界”。(尽管如此,闭环边界确实存在!)
谁能指出我可以做到这一点的算法?我不想重新发明轮子!
graphics - 管理旋转的移动栅格地图
我的应用程序呈现(光栅)移动地图。我需要能够显示基于任何给定角度旋转的地图。该程序目前在 VC++/MFC 中,但问题是一般性的。我有一个源位图(CBitmap 或 HBITMAP)并使用 StretchBlt 将其绘制到设备上下文(CDC)。虽然这对于角度 = 0 快速且平滑(并且用户可以用鼠标平滑地抓取地图),但如果我尝试旋转位图然后呈现它(使用 SetWorldTransform() 旋转位图),情况并非如此大约需要数百毫秒,这太慢了)。
我认为解决方案是只能与当前屏幕上的像素相关,而不是旋转原始源位图——这是关键。
如果有人有类似实现的经验,那么它可能会为我节省大量的试错工作。谢谢!艾维。
image-processing - 如何检测和纠正位图中的断线或形状?
我想找到一种可以在位图中找到断线或形状的算法。考虑一种情况,我有一个只有两种颜色的位图,背面和白色(涂色书中使用的图像),有一些曲线和线条应该相互连接,但由于一些扫描错误,白色位代替黑色的。我应该如何检测它们?(完成这项工作后,我想将位图转换为矢量文件。我想使用 potrace 算法)。
如果您有任何想法,请告诉我。
flash - as3中的完美线条渲染
我正在用 as3 制作街机游戏,我想绘制像素(没有被 flash 平滑)线。我正在将像素“手动”(而不是使用 flash 的 lineTo 或任何东西)绘制到位图数据对象上。
不过,这些线条看起来不太正确,当缩小时,线条在某些部分被渲染为 2 像素厚。然而,通过缩放它很明显该算法很好并且它不会使像素加倍。改变质量似乎并没有改变任何东西。知道如何获得像素完美的线条吗?
该算法不相关,因为我从缩放中知道它并没有真正加倍,并且由于它绘制为位图,它必须以像素增量绘制。但它只是此页面上列出的第二个的 as3 版本
c++ - 使用 glRasterPos() 按像素在屏幕上移动对象
我有以下代码在我的应用程序中呈现文本,首先我获取世界中的鼠标坐标,然后使用这些坐标将我的文本放置在世界中,因此它将跟随我的鼠标位置:
编辑:在代码示例中添加了 buildfont() 函数:
但是我想渲染多行文本,或带有“边框”的文本(就像我尝试过的上面的代码)或带有背景的文本(这样我可以更好地将它们与背景区分开来)那么我该怎么做呢?
我只需要知道如何以像素为单位移动它,这样我就可以精确地修改屏幕上的位置,而无需在我的 3d 渲染投影之上使用 2d 投影视图……我只是想让它尽可能简单。
我试图在文本下绘制一个四边形,但它当然不起作用,因为它仍然使用世界坐标......所以当我旋转我的相机时,文本不会沿着文本的背景移动......我恐怕是唯一的解决方案是在 3d 投影之上创建另一个投影...
apache-flex - 如何提高 Mac 上光栅滚动的性能?
我有一个带有大栅格地图的游戏
现在我们使用 jpeg (4900x4200)
在游戏过程中,我们需要滚动浏览这张地图。
我们使用以下内容:
类映射扩展 mx.containers.Canvas
和 mx.controls.Image 就可以了
在构造函数中,我们有:
对于滚动,我们使用:
在windows中,我们有很好的表现。在 Linux 和 Mac 的 flashplayer 中我们也有很好的表现。
但是在浏览器中性能相当慢!我们能做些什么来解决它?
java - 在 Java 中以自下而上的顺序存储图像像素的最佳方法
我有一个字节数组,表示 Windows BMP 格式的图像,我希望我的库将它作为 . 呈现给 Java 应用程序BufferedImage
,而不复制像素数据。
主要问题是 JDK 中的所有实现都Raster
以自上而下、从左到右的顺序存储图像像素,而 BMP 像素数据是自下而上、从左到右存储的。如果不对此进行补偿,则生成的图像将垂直翻转。
最明显的“解决方案”是将SampleModel
'scanlineStride
属性设置为负值,并将带偏移(或DataBuffer
' 数组偏移)更改为指向左上角像素,即数组中最后一行的第一个像素. 不幸的是,这不起作用,因为如果给定负参数,所有SampleModel
构造函数都会抛出异常。scanlineStride
我目前正在通过scanlineStride
使用反射将字段强制为负值来解决它,但如果可能的话,我想以一种更清洁、更便携的方式来解决它。例如,是否有另一种方法可以欺骗Raster
orSampleModel
以自下而上的顺序排列像素但不破坏封装?或者是否有一个库可以包装Raster
and SampleModel
,以相反的顺序呈现像素行?
我宁愿避免以下方法:
- 复制整个图像(出于性能原因。代码必须每秒处理数百个大(> = 1Mpixels)图像,虽然整个图像必须可供应用程序使用,但它通常只能访问一个很小的(但难以预测) )图像的一部分。)
- 修改
DataBuffer
以执行坐标变换(这实际上可行,但这是另一个“肮脏”的解决方案,因为缓冲区不需要了解扫描线/像素布局。) - 从头开始重新实现
Raster
和/或SampleModel
接口(因为兼容性检查的实现方式(至少在 Sun JDK 中),需要特定的子类,SampleModel
因此通用BottomUpSampleModel
包装类不起作用。)
image - 什么文件格式可以表示每像素 48 或 64 位的未压缩光栅图像?
我在 Windows 下创建屏幕截图并使用LockBits
GDI+ 中的函数提取像素数据,然后将其写入文件。
为了最大限度地提高性能,我还:
- 使用与
PixelFormat
源位图相同,避免格式转换 - 使用
ImageLockModeUserInputBuf
标志将像素数据提取到预先分配的缓冲区中 - 这个预先分配的缓冲区(由 指向
BitmapData::Scan0
)是内存映射文件的一部分(以避免再次复制像素数据。)
我还将编写读取文件的代码,因此我可以使用(或发明)任何我希望的格式。但是,我更喜欢使用现有程序(理想情况下是 Web 浏览器)能够读取的众所周知的格式,因为这意味着我可以在为其他程序(读取图像的程序)编写代码之前直观地确认图像是正确的。 )
我已经成功实现了该PixelFormat32bppRGB
格式,它与 32bpp BMP 文件的格式相匹配,所以如果我将像素数据直接提取到内存映射的 BMP 文件中并在其前面加上 BMP 标头,我会得到一个有效的 BMP 图像文件,它可以在 Paint 和大多数浏览器中打开。
不幸的是,我正在测试的其中一台机器以PixelFormat64bppPARGB
格式返回像素(可能这受到视频适配器驱动程序的影响),并且没有相应的 BMP 像素格式。
转换为 16、24 或 32bpp BMP 格式会大大降低程序速度(并且有损),因此我正在寻找一种无需转换即可使用此像素格式的文件格式,因此我可以直接提取到内存映射文件中正如我对 32bpp 格式所做的那样。
哪些光栅图像文件格式支持 48bpp(BGR 顺序,little-endian)和/或 64bpp(BGRA 顺序,little-endian)?
编辑
到目前为止,我已经排除了这些格式:
- BMP:深度限制为 <=32bpp(否则将是完美匹配。)
- PNG : 样品顺序只能是 RGBA。
- TIFF : 样品顺序只能是 RGBA。
可能的部分解决方案:
- OpenEXR:仅 48bpp。采样顺序按通道名称的字母顺序排列;BGR 适合,但 BGRA 不适合。
python - 从栅格中提取形状内的点
我有一个接近一百万点的光栅文件(基本上是二维数组)。我正在尝试从光栅中提取一个圆(以及圆内的所有点)。为此,使用 ArcGIS 非常缓慢。任何人都可以推荐任何既容易学习又功能强大且足够快的图像处理库来完成这样的事情?
谢谢!
python - gis中的哈夫模型
用于领土和经济分析的 Huff 模型的最简单版本如何?sig 使用我推荐的算法或用于处理矢量和光栅 OGR 文件的免费库