如何将像素重新采样为另一种分辨率?

彼得

我开始编写鼠标跟踪脚本作为一个挑战,它会以任何分辨率记录,然后将其全部转换为单一分辨率并输出图像。

我让它在基本层面上工作,所以它相当于只是拉伸所有东西。例如,如果您增加输出的宽度并减少高度,您仍然可以看到单个像素的位置,它们只是非常宽且被压扁。

我想知道是否有人知道我实际上是如何重新采样像素的,尤其是对于奇数分辨率,因此它会产生较少的块状结果?无论如何,显示器通常都是非常标准的分辨率,这不是一个大问题,但让我有点恼火的是我已经尝试过但无法让它工作。

我尝试获取剩余的width/height_multiply并添加value * remainder到外部像素,如果它是一个奇怪的比例,作为一种使它们模糊的方式,但它产生了非常奇怪的结果,与我想要的完全不同。

这是我当前编辑的代码:

required_res = (3840, 2160)
data = {(1920, 1080: {(0, 2): 52, (1, 2): 549, (6, 3): 125}}

for resolution, coordinates in data.iteritems():

    width_multiply = required_res[0] / resolution[0]
    height_multiply = required_res[1] / resolution[1]

    for coordinate, value in coordinates.iteritems():

        #Figure out new coordinate
        base_coordinate = (int(round(coordinate[0] * width_multiply)),
                           int(round(coordinate[1] * height_multiply)))
        coordinate_list = {base_coordinate: value}


        #Increase pixel size if image is bigger
        if width_multiply_int and height_multiply_int:
            for x in range(-int(width_multiply), int(width_multiply)):
                for y in range(-int(height_multiply), int(height_multiply)):

                    new_coordinate = (base_coordinate[0] + x,
                                      base_coordinate[1] + y)
                    coordinate_list[new_coordinate] = value

        #repeat above bit for "just x" and "just y", it's basically the same


        for c in coordinate_list:
            try:
                new_data[c] = max(new_data[c], value)
            except KeyError:
                new_data[c] = value

该值只是为了使屏幕不会完全变黑。每个新点基本上都会得到一个更高的数字,并且它目前是从0 = white的线性比例latest = black以下是一两天使用 Windows 和玩游戏的示例

在此处输入图片说明

编辑:我尝试了 RuDevel 的颜色建议(它没有解决问题,但我认为这是一个很酷的主意)因为当互联网一次掉线几个小时时它有点无聊。图片上的曲目较少,因为我还添加了一些压缩旧值的内容,因此需要启动一个新文件。

结果没有预期的那么好,但作为一个基点,我尝试在彩虹色中循环:

在此处输入图片说明

而他们反过来: 在此处输入图片说明

鲁德维尔

You could maybe trace your movements using a pencil that shifts colors over time (e.g. rainbow- style).

That way you'd be able to trace them much longer than with black lines. However, I'd still expect you'd have to start a fresh trace image every now and then and thus have constantly growing space- requirements over time.

But if you then converted only one segment at a time into a spline, wrote the result to your final output and dropped it immediately you'd need (almost) no extra space for the final conversion.

Another idea would be to compress the extracted splines at significant points on the fly by noting position, direction and speed. That should strongly reduce space- requirements - but defining how to detect such a significant point might be hard.

One method for that might be to define an area (e.g. center area of a 5x5 grid) to be something like 'the center of mass'. A segment would be noted once when it passes through that center or (for outer lines) at the nearest point towards the center. You'd however need to define some type of 'physics' to reproduce (something comparable to) the original image.

如上所述,对图像的子像素进行上采样也应该起作用,但是您的图像类型-很可能(就其本质而言)-为再现留下很少的不同边缘方向。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将UI从一种形式更新为另一种形式

来自分类Dev

如何将一种资源的输出值分配为另一种资源的输入?

来自分类Dev

如何将一种格式的json转换为另一种格式

来自分类Dev

Pygame-使用SurfArray将某种颜色的像素重新着色为另一种颜色(阵列切片问题)

来自分类Dev

如何使用xESMF将高分辨率的GRIB网格重新采样到较粗糙的分辨率?

来自分类Dev

如何将Android XML矢量可绘制对象导出为另一种格式?

来自分类Dev

C ++错误“将“字符串”重新定义为另一种符号”

来自分类Dev

将SidebarDelegate重新定义为另一种符号

来自分类Dev

将SidebarDelegate重新定义为另一种符号

来自分类Dev

将“ WhatEver”重新定义为另一种符号

来自分类Dev

C ++错误“将“字符串”重新定义为另一种符号”

来自分类Dev

我的投影仪如何将输入分辨率下采样到其原始分辨率?

来自分类Dev

如何将csv文件内容从一种格式(通常为csv格式)转换为另一种格式(由salesforce支持)?

来自分类Dev

将启动屏幕设置为一种分辨率会导致其他屏幕在xcode中消失

来自分类Dev

将值设置为另一种形式

来自分类Dev

如何将数组格式从一种多维形式更改为另一种形式?

来自分类Dev

如何将一种类型的CompletableFuture转换为另一种类型?

来自分类Dev

如何将php对象数组从一种形式转换为另一种形式

来自分类Dev

如何将嵌套对象从一种类型转换为另一种类型

来自分类Dev

如何将数据从一种形式传递到另一种套件脚本

来自分类Dev

如何将一种数据类型转换为另一种

来自分类Dev

如何将文本从一种语言翻译成另一种语言的android?

来自分类Dev

如何将PPA用户从一种PPA转换为另一种PPA?

来自分类Dev

如何将信息从一种意图传递到另一种意图

来自分类Dev

如何将PPA用户从一种PPA转换为另一种PPA?

来自分类Dev

如何将一种方法作为参数传递给另一种方法?

来自分类Dev

如何将int值从一种方法转换为另一种方法

来自分类Dev

如何将值从一种形式传递到另一种形式的动态创建的控件

来自分类Dev

如何将数据从一种形式放入另一种形式的列表框中

Related 相关文章

  1. 1

    如何将UI从一种形式更新为另一种形式

  2. 2

    如何将一种资源的输出值分配为另一种资源的输入?

  3. 3

    如何将一种格式的json转换为另一种格式

  4. 4

    Pygame-使用SurfArray将某种颜色的像素重新着色为另一种颜色(阵列切片问题)

  5. 5

    如何使用xESMF将高分辨率的GRIB网格重新采样到较粗糙的分辨率?

  6. 6

    如何将Android XML矢量可绘制对象导出为另一种格式?

  7. 7

    C ++错误“将“字符串”重新定义为另一种符号”

  8. 8

    将SidebarDelegate重新定义为另一种符号

  9. 9

    将SidebarDelegate重新定义为另一种符号

  10. 10

    将“ WhatEver”重新定义为另一种符号

  11. 11

    C ++错误“将“字符串”重新定义为另一种符号”

  12. 12

    我的投影仪如何将输入分辨率下采样到其原始分辨率?

  13. 13

    如何将csv文件内容从一种格式(通常为csv格式)转换为另一种格式(由salesforce支持)?

  14. 14

    将启动屏幕设置为一种分辨率会导致其他屏幕在xcode中消失

  15. 15

    将值设置为另一种形式

  16. 16

    如何将数组格式从一种多维形式更改为另一种形式?

  17. 17

    如何将一种类型的CompletableFuture转换为另一种类型?

  18. 18

    如何将php对象数组从一种形式转换为另一种形式

  19. 19

    如何将嵌套对象从一种类型转换为另一种类型

  20. 20

    如何将数据从一种形式传递到另一种套件脚本

  21. 21

    如何将一种数据类型转换为另一种

  22. 22

    如何将文本从一种语言翻译成另一种语言的android?

  23. 23

    如何将PPA用户从一种PPA转换为另一种PPA?

  24. 24

    如何将信息从一种意图传递到另一种意图

  25. 25

    如何将PPA用户从一种PPA转换为另一种PPA?

  26. 26

    如何将一种方法作为参数传递给另一种方法?

  27. 27

    如何将int值从一种方法转换为另一种方法

  28. 28

    如何将值从一种形式传递到另一种形式的动态创建的控件

  29. 29

    如何将数据从一种形式放入另一种形式的列表框中

热门标签

归档