医疗图像质量评估

前言:

 

 

# -*- coding: utf-8 -*-
# @Time    : 2021/1/31 15:33
# @Author  : YYLin
# @Email   : 854280599@qq.com
# @File    : pixel_value.py
from matplotlib.patches import ConnectionPatch
import cv2, os
import matplotlib.pyplot as plt
import numpy as np

img_dir = 'result-classifier'
img_name = '768512.jpg'
coordinate = 107 # 145

DDC_GAN = []
DD_GAN = []
DDAC_GAN = []
Real_data = []

# 生成数据集
for child_dir in os.listdir(img_dir):
    child_path = os.path.join(img_dir, child_dir, img_name)
    print('child_path:', child_path)
    img = cv2.imread(child_path, cv2.IMREAD_GRAYSCALE)
    for i in range(img.shape[0]):
        if 'DDC_GAN' == child_dir:
            DDC_GAN.append(img[coordinate, i])
        elif 'DDAC_GAN' == child_dir:
            DDAC_GAN.append(img[coordinate, i])
        elif 'DD_GAN' == child_dir:
            DD_GAN.append(img[coordinate, i])
        elif 'real_data' == child_dir:
            Real_data.append(img[coordinate, i])

# 首先画出整体的架构图
print('Real_data:', len(Real_data))
x_axis_data = []
for i in range(len(Real_data)):
    x_axis_data.append(i)

fig, ax = plt.subplots(1, 1)
ax.plot(x_axis_data, DD_GAN, color='b', alpha=0.8, label='DD_GAN')
ax.plot(x_axis_data, DDAC_GAN, color='g', alpha=0.8, label='DDAC_GAN')
ax.plot(x_axis_data, DDC_GAN, color='r', alpha=0.8, label='DDC_GAN')
ax.plot(x_axis_data, Real_data, color='y', alpha=0.8, label='Real_data')
font = {'family': 'Times New Roman',
        'weight': 'normal',
        'size': 14,
        }
ax.legend(loc=2, bbox_to_anchor=(1.05, 1.0), borderaxespad=0.1)
ax.set_xlabel('', font)
ax.set_ylabel('Pixel intensity', font)

# 在子坐标系中绘制原始数据
axins = ax.inset_axes((0.35, 0.10, 0.25, 0.25))
axins.plot(x_axis_data, DD_GAN, color='b', alpha=0.8, label='DD_GAN')
axins.plot(x_axis_data, DDAC_GAN, color='g', alpha=0.8, label='DDAC_GAN')
# axins.plot(x_axis_data, No_Semantic_Loss, color='m', alpha=0.8, label='No_Semantic_Loss')
axins.plot(x_axis_data, DDC_GAN, color='r', alpha=0.8, label='DDC_GAN')
axins.plot(x_axis_data, Real_data, color='y', alpha=0.8, label='Real_data')

# 设置放大区间,调整子坐标系的显示范围
zone_left = 40
zone_right = 50

# 坐标轴的扩展比例(根据实际数据调整)
x_ratio = 0  # x轴显示范围的扩展比例
y_ratio = 0.05  # y轴显示范围的扩展比例

# X轴的显示范围
xlim0 = x_axis_data[zone_left]-(x_axis_data[zone_right]-x_axis_data[zone_left])*x_ratio
xlim1 = x_axis_data[zone_right]+(x_axis_data[zone_right]-x_axis_data[zone_left])*x_ratio

# Y轴的显示范围  DA_GAN[zone_left:zone_right],
y = np.hstack((DD_GAN[zone_left:zone_right], DDAC_GAN[zone_left:zone_right],
               DDC_GAN[zone_left:zone_right],
               Real_data[zone_left:zone_right]))

ylim0 = np.min(y)-(np.max(y)-np.min(y))*y_ratio
ylim1 = np.max(y)+(np.max(y)-np.min(y))*y_ratio

# 调整子坐标系的显示范围
axins.set_xlim(xlim0, xlim1)
axins.set_ylim(ylim0, ylim1)

# 原图中画方框
tx0 = xlim0
tx1 = xlim1
ty0 = ylim0
ty1 = ylim1
sx = [tx0, tx1, tx1, tx0, tx0]
sy = [ty0, ty0, ty1, ty1, ty0]
ax.plot(sx, sy, 'black')

# 画两条线
xy = (xlim0, ylim0)
xy2 = (xlim0, ylim1)
con = ConnectionPatch(xyA=xy2, xyB=xy, coordsA='data',
                      coordsB='data', axesA=axins, axesB=ax)

axins.add_artist(con)

plt.savefig('Pixel_intensity', dpi=400, bbox_inches='tight')
plt.show()

 

结果

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值