【发布时间】:2019-05-18 00:55:25
【问题描述】:
假设我有一个 8 向的 freeman 链码如下,在一个 python 列表中:
freeman_code = [3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5]
方向定义如下:
我需要将其转换为可变维度的图像矩阵,其值为 1 和 0,其中 1 表示形状,例如:
image_matrix = [
[0, 0, 1, 0, 0, 1],
[0, 0, 0, 1, 0, 1],
[0, 0, 0, 0, 1, 1]
]
当然,以上并不是上述freeman代码的精确实现。 python 中是否有任何实现,或者 any 语言实现了这一点? 我的想法(在python中): 使用默认为 0 的 defaultdicts 的 defaultdict:
ImgMatrixDict = defaultdict(lambda: defaultdict(lambda:0))
然后从一个中点开始,比如ImgMatrixDict[25][25],然后在我遍历时根据 freeman 代码值将值更改为 1。之后我会将ImgMatrixDict 转换为列表列表。
这是一个可行的想法还是有任何现有的库或建议来实现它?任何想法/伪代码将不胜感激。
PS:在性能方面,是的,这并不重要,因为我不会实时执行此操作,但通常代码长度约为 15-20 个字符。我假设一个 50*50 的矩阵就足够了。
【问题讨论】:
-
你能准确定义你想使用的弗里曼定律吗?是8个方向的吗?一个完美匹配的例子会很棒,即使是一个很短的例子。你在意表演吗?
-
我在问题中添加了信息,谢谢:)
标签: python python-3.x data-mining pattern-mining