gpt4 book ai didi

python - 使用函数作为卷积核

转载 作者:行者123 更新时间:2023-12-04 17:07:25 26 4
gpt4 key购买 nike

各位程序员大家好,

我今年正在做advent of code .在 day 9我需要找出图像中的像素是否具有相邻像素的最小值。

我最初很直观粗暴地解决了这个问题,但现在看了一段时间后想知道是否有办法为 opencv 的 filter2D 定义一个卷积核。 -function 或其他合适的库,我可以尝试将内核定义为函数,这样我不仅可以执行线性变换,还可以执行其他变换。

在这个具体示例中,我正在考虑一个内核,它可以判断中间像素是否具有最低值。也许甚至有一种方法可以使用线性变换来做到这一点,但我找不到它。

感谢任何帮助。

最佳答案

我自己找到了一个解决方案,只需使用 scipy.ndimage.generic_filter

import numpy as np
from scipy.ndimage import generic_filter

# First define the footprint of the filter you are going to use:
footprint = np.array([[False, True, False],
[True, True, True],
[False, True, False]])

# Then define the filter you want to use:
def lowpoint_kernel(a):
return 0 if a[2] < a[0] and a[2] < a[1] and a[2] < a[3] and a[2] < a[4] else 10

# Get your input here
image = ...

# Pad your image
image = np.pad(image, 1, constant_values=10)

lowpoints = generic_filter(image, lowpoint_kernel, footprint=footprint)
lowpoint_indices = lowpoints == 0

这可能是一个非常复杂的解决方案,但也许有人会发现它很有用。查看我的完整解决方案 here .

关于python - 使用函数作为卷积核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70309393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com