python模仿remove_small_objects()函数去除图片中离散点

skimage包的morphology子模块中,提供了一个remove_small_objects()函数,可以通过自己设定的连通域面积阈值有效去掉图片中的噪点。但是在实际中,我们有时候发现只需要删除最远的那个离散点,这个离散点明显就属于噪点了。于是通过模仿模仿remove_small_objects()函数去除图片边缘不感兴趣区域。实现去除图片中离散点。

具体实现代码如下

def remove_max_objects(img):
    x0=200.0
    y0=200.0 #这里以图片大小为400*400为例
    labels = measure.label(img)  
    region = measure.regionprops(labels)  
    # is_del = False
    if len(region) == 1:
        out = img
       
    else:
     
        num = labels.max()  
        del_array = np.array([0] * (num + 1)
        initial_len=50
        save_index=0
        out = img
        for k in range(num):
      
            y,x=region[k].centroid
            k_l= math.sqrt(((x-x0)**2)+((y-y0)**2))
            k_len = k_l 
            if initial_len < k_len:
                initial_len = k_len
                save_index = k + 1
        del_array[save_index] = 1
        del_mask = del_array[labels]      
        out = out * del_mask
            
        out1=img-out
        
        
    return out1

从而实现去除图片中远离中心的离散点。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我已经根据您的要求进行了修改。下面是根据您的要求优化过的 `create_boxplot` 函数的代码: ```python import os import matplotlib.pyplot as plt import sys def create_boxplot(rbp_name, data, subfolders): fig, ax = plt.subplots(figsize=(10, 6)) boxprops = dict(linewidth=2) medianprops = dict(linewidth=2, color='red') whiskerprops = dict(linewidth=2) capprops = dict(linewidth=2) ax.boxplot(data, boxprops=boxprops, medianprops=medianprops, whiskerprops=whiskerprops, capprops=capprops) x_labels = [f'Ctrl_{subfolder}\nrep1_{subfolder}\nrep2_{subfolder}' for subfolder in subfolders] ax.set_xticklabels(x_labels, rotation=0, fontsize=8) ax.set_xlabel('Conditions', fontsize=12) ax.set_ylabel('Expression Level', fontsize=12) ax.set_title(f'{rbp_name} Expression Box Plot', fontsize=14) plt.tight_layout() plt.savefig(os.path.join(rbp_name, f'{rbp_name}_boxplot.pdf')) plt.close() if __name__ == "__main__": rbp_name = sys.argv[1] subfolders = ['lncRNA', 'miRNA', 'mRNA', 'snoRNA', 'snRNA', 'tRNA'] # 提取数据 data = extract_data(rbp_name) # 创建箱线图 create_boxplot(rbp_name, data, subfolders) ``` 在优化后的 `create_boxplot` 函数,我添加了一些参数来控制箱线图的样式,包括 `boxprops`、`medianprops`、`whiskerprops` 和 `capprops`。我还设置了 x 轴标签的字体大小,并添加了 x 轴和 y 轴标签以及标题。 此外,我还添加了 `figsize` 参数来限制图片的长宽比例为 10:6,并使用 `tight_layout` 函数来自动调整图像的边距。 请尝试运行修改后的代码,看看是否满足您的需求。如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值