这是一张SEM图像,上面添加了一些辅助特征线。我的目的是把它们去掉。x1c 0d1x的数据
我发现,对于原生SEM像素,RGB值应该都相同或非常接近,对于彩色线条/像素,RGB值可能会有很大差异。
所以我写了一个函数来提取它们。
def filter_colorful_point(img_obj):
def check_point_is_colorful(rgb):
rgb = list(rgb)
if rgb.count(rgb[0]) == len(rgb):
return False
return max(rgb) - min(rgb) >= 30
colorful_mask = np.apply_along_axis(check_point_is_colorful, axis=2, arr=img_obj).astype('uint8')
return colorful_mask
字符串
这里我在numpy中使用apply_沿着_axis方法,并比较第三个轴中的值,即BGR值。
而且功能工作得相当好。下面是生成的掩码
我的问题是,如何优化这个函数使其更快?因为我有太多的扫描电镜图像处理。
1条答案
按热度按时间zzwlnbp81#
您可以使用ptp(峰到峰):
字符串
或者更简单,如下面的评论中所指出的:
型