将遮罩图像与python trackpy一起使用

将遮罩图像与python trackpy一起使用,python,image-processing,image-segmentation,particles,trackpy,Python,Image Processing,Image Segmentation,Particles,Trackpy,我正在使用trackpy计算粒子数。使用完整图像可以获得令人满意的结果 我还有一组图像,其中一个区域被遮罩(这里有遮罩和遮罩图像) 正如我们在下面的图片中所看到的,该算法检测遮罩边界周围的粒子 防止这种“边界粒子”的最佳策略是什么 我无法解决使用tp.locate参数的问题。 也许有办法导入掩码并对数据帧进行后期过滤?那可能超出我的能力范围 *****编辑****** 到目前为止,我提出的解决方案包括修改遮罩的像素值(0)以匹配未遮罩区域的平均像素值(本例中为50) 因此,即使结果并非在所有

我正在使用trackpy计算粒子数。使用完整图像可以获得令人满意的结果

我还有一组图像,其中一个区域被遮罩(这里有遮罩和遮罩图像)

正如我们在下面的图片中所看到的,该算法检测遮罩边界周围的粒子

防止这种“边界粒子”的最佳策略是什么

我无法解决使用tp.locate参数的问题。 也许有办法导入掩码并对数据帧进行后期过滤?那可能超出我的能力范围

*****编辑******

到目前为止,我提出的解决方案包括修改遮罩的像素值(0)以匹配未遮罩区域的平均像素值(本例中为50)

因此,即使结果并非在所有情况下都完美,粒子查找的结果也较少受到遮罩边界的影响


一些想法:1。在运行trackpy,2之前减去背景噪声。使用中值模糊在保留粒子边缘的同时去除噪波,以及3。如trackpy演练中所示,优化参数以消除虚假特征。您也可以发布原始图像或MWE以获得再现性。另一种选择是实际进行后处理:1。裁剪图像,然后选择2。删除靠近图像裁剪边的所有粒子。(熊猫数据框架让这变得容易)一些想法:1。在运行trackpy,2之前减去背景噪声。使用中值模糊在保留粒子边缘的同时去除噪波,以及3。如trackpy演练中所示,优化参数以消除虚假特征。您也可以发布原始图像或MWE以获得再现性。另一种选择是实际进行后处理:1。裁剪图像,然后选择2。删除靠近图像裁剪边的所有粒子。(熊猫数据框使这变得容易)
import numpy as np
import pandas as pd
from pandas import DataFrame, Series  # for convenience
from pylab import*

import pims
import trackpy as tp

frames = pims.ImageSequence('C:/Users/Mich/Desktop/masked_particles.tif', as_grey=True)
originaImage=pims.ImageSequence('C:/Users/Mich/Desktop/masked_particles.tif', as_grey=True)

plt.imshow(frames[0]);

f = tp.locate(frames[0], 3, minmass=30,maxsize=3, separation=3,noise_size=1, threshold=2)

plt.figure(figsize=(40,20))  # make a new figure
tp.annotate(f, originaImage[0],plot_style={'markersize': 1});