小编tw3*_*124的帖子

最接近给定点

我在2D图像中有一组随机选择的像素.对于图像中的每个其他像素,我需要找出集合K中哪个像素最接近它(使用标准sqrt(dx ^ 2 + dy ^ 2)距离度量).我知道每个像素可能有多个解决方案.显然,它可以通过强力对抗集合中的每个像素来完成,但我宁愿避免这种情况,因为它效率不高.还有其他好的建议吗?

干杯.

algorithm 2d points

26
推荐指数
6
解决办法
3万
查看次数

图像处理的想法

最近我一直在搞乱图像算法,部分是为了好玩,部分是为了保持我的编程技巧.

我刚刚实现了一个"最近邻居"算法,该算法在图像中选取n个随机像素,然后将图像中每个其他像素的颜色转换为n个所选像素集合中最近邻居的颜色.结果是对图像的一种"磨砂玻璃"效果,对于合理大的n值(如果n太小则图像变得块状).

我只是想知道是否有人在图像上有任何其他好的/有趣的算法可能有趣的实现?

汤姆

algorithm image

10
推荐指数
2
解决办法
1977
查看次数

访问 C 中链接器定义的符号

我有一个链接器符号(我们称之为 __BASE_ADDR),在链接器命令脚本中定义,其中包含我需要使用的长字后面的长字的地址(例如,我需要检查地址 0x0000000C 处的长字,并且 __BASE_ADDR 等于 0x00000010 )。因此,在代码中我尝试使用 __BASE_ADDR 并从中减去 4 以访问 0x0000000C。

我的链接器映射输出正确显示 __BASE_ADDR 的值为 0x00000010。但是,当我尝试使用以下 C 代码访问该位置时,它不起作用:

extern unsigned char *__BASE_ADDR;

void someFunc( void )
{
    unsigned long Val = *((unsigned long *) (__BASE_ADDR - 4));

    /* Use Val for some comparison...*/
    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

Val 设置为错误的值。似乎发生的情况是,无论 __BASE_ADDR 处的长字是什么,都将被视为地址,减去 4,并将所得地址的内容放入 Val 中。

但是当我执行以下操作时,它确实工作正常,并且 Val 被正确设置为地址 0x0000000C 处的任何内容:

extern unsigned char __BASE_ADDR[];

void someFunc( void )
{
    unsigned long Val = *((unsigned long *) (__BASE_ADDR - …
Run Code Online (Sandbox Code Playgroud)

c linker symbols extern

4
推荐指数
1
解决办法
6334
查看次数

标签 统计

algorithm ×2

2d ×1

c ×1

extern ×1

image ×1

linker ×1

points ×1

symbols ×1