首页 > 其他分享 >chatGPT帮我优化代码-2024.06.20

chatGPT帮我优化代码-2024.06.20

时间:2024-06-20 18:42:39浏览次数:21  
标签:roi 2024.06 20 value elements plt chatGPT unique pixel

改成面向对象

  • 源代码
    
    def ret_roi_value_dict(txt_path):
        output = []
        line_number = 0
        with open(txt_path, 'r') as file:
            for line in file:
                line_number += 1
                # 使用正则表达式提取case_name和pixel_value
                match = re.match(r'Case\s+(.*?)\s+has\s+\[(.*?)\]', line)
                if match:
                    case_name = match.group(1)
                    pixel_value = list(map(int, match.group(2).split('')))
                    output.append({'case_name': case_name, 'pixel_value': pixel_value})
                else:
                    print(f"Line {line_number} not matched: {line.strip()}")
        
        return output
    
    
    def show_roi_value(roi_value_dict, fig_save_path, save_dpi):
        # 提取所有 "pixel_value" 对应的值
        all_pixel_values = []
        for item in roi_value_dict:
            all_pixel_values.extend(item["pixel_value"])
        # 计算每个元素的出现次数
        unique_elements, counts = np.unique(np.array(all_pixel_values), return_counts=True)
        # 将 unique_elements 和 counts 转换为 list,并根据 counts 进行排序
        sorted_indices = np.argsort(counts)[::-1]
        sorted_unique_elements = unique_elements[sorted_indices]
        sorted_counts = counts[sorted_indices]
        
        # 定义前五个颜色
        top_colors = ['red', 'blue', 'green', 'yellow', 'purple']
        bar_colors = ['grey'] * len(unique_elements)
    
        # 将排名第二到第六的元素的颜色改为指定颜色
        for i in range(1, min(6, len(sorted_unique_elements))):
            # 找到 sorted_unique_elements[i] 在 original unique_elements 中的位置
            original_index = np.where(unique_elements == sorted_unique_elements[i])[0][0]
            bar_colors[original_index] = top_colors[i-1]
        # 绘制条形图
        plt.figure(figsize=(10, 6))
        bars = sns.barplot(x=unique_elements, y=counts, palette=bar_colors)
        plt.title('TB ROI Information')
        plt.xlabel('ROI label')
        plt.ylabel('Case count')
        plt.xticks(rotation=45)  # 旋转 x 轴标签以提高可读性
        plt.tight_layout()  # 确保标签不会被裁剪
        plt.grid(axis="y")
        # 在每个 bar 上方标注数量
        for i, bar in enumerate(bars.patches):
            height = bar.get_height()
            plt.text(bar.get_x() + bar.get_width() / 2, int(height), f'{int(height)}', ha='center', va='bottom', color='black')
        # 保存图像
        plt.savefig(fig_save_path, dpi=save_dpi)
    
        
    def main():
        keyword_list = ["MaXin_50_Newlabel_final", "MaXin_100", "ZhangRui_50_Newlabel_final", "ZhangRui_54"]
        roi_value_dict = []
        for keyword in keyword_list:
            temp = ret_roi_value_dict(txt_path=f"/homes/xchang/Projects/Multi-center_Tuberculosis/segmentation/nnUNet_dl/{keyword}.txt")
            roi_value_dict.extend(temp) 
        show_roi_value(roi_value_dict=roi_value_dict, fig_save_path=f"segmentation/nnUNet_dl/roi_new_values_final.png", save_dpi=600)
    

标签:roi,2024.06,20,value,elements,plt,chatGPT,unique,pixel
From: https://www.cnblogs.com/elinablog/p/18259293

相关文章

  • Excel 2003编辑和保存.bdf文件
    Excel2003可以直接编辑和保存.dbf文件。从Excel2007之后没有了这个功能,所以请认准office2003/excel2003,可以用来编辑arcgisshapefile的dbf文件。 ————————————————还可以参考下面文章链接:https://blog.csdn.net/skytruine/article/details/80493585......
  • 移远通信SC200L芯片Linux平台摄像头应用开发
    一、交叉编译器             对于Linux平台的开发,官方只提供了yocto工程的源码,没有SDK,yocto工程也不能制作SDK包,可能是我自己的问题,最后只能在yocto中自建layer来进行开发。        由于官方源码编译采用arm-unisoc-linux-gnueabi-gcc,32位arm,所以整......
  • 2024中国ScrumDay大会,全面开启早鸟票启售!智驭未来,敏捷先行!Scrum.org CEO及敏捷行业专
    关于ScrumDay智驭未来,敏捷先行——2024中国Scrum大会启航在全球数字化转型的浪潮中,敏捷已成为企业脱颖而出的关键。Scrum中文网携手全球敏捷行业巨擘——Scrum.org联袂呈现年度敏捷盛会ScrumDay,将于今秋盛大启幕!大会聚焦“AI时代下的敏捷(AgileintheAIAge)”,汇......
  • 江西省2024年初中学业水平考试(中考)数学试题卷及答案
         ......
  • 云渲染平台深度评测:2024年最佳选择推荐
    在众多云渲染服务中挑选一个既可靠又高效的平台是一项关键的决策。今天,我将向大家介绍五家享有良好网络评价和稳定性能的云渲染平台。本篇文章的评测重点将放在"渲染成本"上。机器配置:16核(32线程),64GB内存;友商一:CPU渲染,在单笔消费达1w后,可享受折后单价0.09¥/核·小时,相当于16......
  • 2024最好的轻资产创业项目有哪些 低成本高收益简单易操作的看这里
    在2024年,轻资产创业赛道展现出多样化的趋势,这些赛道不仅顺应了时代潮流,还充分展现了创新与差异化的发展思路。以下是一些值得关注的轻资产创业赛道:首先,APP拉新工作室成为了一个热门的创业项目。随着移动互联网的普及,APP的下载量和活跃度成为了衡量其成功与否的重要指标。因此......
  • 远光九天平台荣获2024广东软件风云榜行业应用解决方案TOP10
    6月13日,远光九天智能一体化云平台(简称:远光九天平台)在2024年粤港澳软件产业高质量发展大会、第十二届粤港云计算大会暨第七届粤港澳ICT大会,被授予2024广东软件风云榜“行业应用解决方案TOP10”奖项。  作为远光软件自主研发的全栈国产化技术底座,远光九天平台是采用云原生架......
  • 黑马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day3
    你好,我是Qiuner.为帮助别人少走弯路和记录自己编程学习过程而写博客这是我的githubhttps://github.com/Qiuner⭐️giteehttps://gitee.com/Qiuner......
  • GDKOI2024游记
    GDKOI2024游记前言在经历CSP+NOIP,长达一个半月的停课后,我不负众望地打爆了两场比赛,滚回去学whk...在兼顾whk和OI中,我度过了忙碌的两周,迎来了GDKOI,前往了东莞ssl...DAY0下午两点半前往东莞,腐了一路...到酒店发现非常高档,还有小度、智能toilet,电视可以投屏,然后就前往ssl领了......
  • RTX5全家桶源码综合模板发布,含FreeRTOS内核版本,将其打造成直接面向实际项目应用的综合
    【说明】1、RTX5全家桶的优势就是简单易用,初学的话,上手很快,稳定性也是杠杠的,且容易做稳定。2、同时RTX5也是有汽车级,工业级,医疗和铁路安全认证,只是安全级别比ThreadX要稍微低些。3、当前RTX5中间件源码已经开源了,大大方便大家问题的排查。同时提供了FreeRTOS内核版本,方便大家选......