zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然 PYTHON数据分析:糖尿病视网膜病变数据分析(续四)

    dpi = 80 #inch
    
    path_jpg=f"F:\kaggleDataSet\diabeticRetinopathy\resized_train_cropped\18017_left.jpeg" # too many vessels?
    path_png=f"F:\kaggleDataSet\diabeticRetinopathy\rescaled_train_896\18017_left.png" # details are lost
    image = cv2.imread(path_png)
    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    image = cv2.resize(image, (IMG_SIZE, IMG_SIZE))
    
    image2 =  cv2.imread(path_jpg)
    image2 = cv2.cvtColor(image2, cv2.COLOR_BGR2RGB)
    image2 = cv2.resize(image2, (IMG_SIZE, IMG_SIZE))
    
    height, width = IMG_SIZE, IMG_SIZE
    print(height, width)
    
    SCALE=1/4
    figsize = (width / float(dpi))/SCALE, (height / float(dpi))/SCALE
    
    fig = plt.figure(figsize=figsize)
    ax = fig.add_subplot(2, 2, 1, xticks=[], yticks=[])
    ax.set_title('png format original' )
    plt.imshow(image, cmap='gray')
    ax = fig.add_subplot(2, 2, 2, xticks=[], yticks=[])
    ax.set_title('jpg format original' )
    plt.imshow(image2, cmap='gray')
    
    image = load_ben_color(path_png,sigmaX=30)
    image2 = load_ben_color(path_jpg,sigmaX=30)
    ax = fig.add_subplot(2, 2, 3, xticks=[], yticks=[])
    ax.set_title('png format transformed' )
    plt.imshow(image, cmap='gray')
    ax = fig.add_subplot(2, 2, 4, xticks=[], yticks=[])
    ax.set_title('jpg format transformed' )
    plt.imshow(image2, cmap='gray')

    import json
    import math
    import os
    
    import cv2
    from PIL import Image
    import numpy as np
    from keras import layers
    from keras.applications import DenseNet121
    from keras.callbacks import Callback, ModelCheckpoint
    from keras.preprocessing.image import ImageDataGenerator
    from keras.models import Sequential
    from keras.optimizers import Adam
    import matplotlib.pyplot as plt
    import pandas as pd
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import cohen_kappa_score, accuracy_score
    import scipy
    from tqdm import tqdm
    
    %matplotlib inline
    train_df = pd.read_csv('F:\kaggleDataSet\diabeticRetinopathy\trainLabels19.csv')
    test_df = pd.read_csv('F:\kaggleDataSet\diabeticRetinopathy\testImages19.csv')
    print(train_df.shape)
    print(test_df.shape)
    test_df.head()

    def get_pad_width(im, new_shape, is_rgb=True):
        pad_diff = new_shape - im.shape[0], new_shape - im.shape[1]
        t, b = math.floor(pad_diff[0]/2), math.ceil(pad_diff[0]/2)
        l, r = math.floor(pad_diff[1]/2), math.ceil(pad_diff[1]/2)
        if is_rgb:
            pad_width = ((t,b), (l,r), (0, 0))
        else:
            pad_width = ((t,b), (l,r))
        return pad_width
    
    def preprocess_image(image_path, desired_size=224):
        im = Image.open(image_path)
        im = im.resize((desired_size, )*2, resample=Image.LANCZOS)
        return im
    N = test_df.shape[0]
    x_test = np.empty((N, 224, 224, 3), dtype=np.uint8)
    
    for i, image_id in enumerate(tqdm(test_df['id_code'])):
        x_test[i, :, :, :] = preprocess_image("F:\kaggleDataSet\diabeticRetinopathy\resized test 19\"+str(image_id)+".jpg")

    # model.summary()
    def load_image_ben_orig(path,resize=True,crop=False,norm255=True,keras=False):
        image = cv2.imread(path)
        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)   
        image=cv2.addWeighted( image,4, cv2.GaussianBlur( image , (0,0) ,  10) ,-4 ,128)
        if norm255:
            return image/255
        elif keras:
            #see https://github.com/keras-team/keras-applications/blob/master/keras_applications/imagenet_utils.py for mode
            #see https://github.com/keras-team/keras-applications/blob/master/keras_applications/xception.py for inception,xception mode
            #the use of tf based preprocessing (- and / by 127 respectively) will results in [-1,1] so it will not visualize correctly (directly)
            image = np.expand_dims(image, axis=0)
            return preprocess_input(image)[0]
        else:
            return image.astype(np.int16)
        return image
    
    def transform_image_ben(img,resize=True,crop=False,norm255=True,keras=False):  
        image=cv2.addWeighted( img,4, cv2.GaussianBlur( img , (0,0) ,  10) ,-4 ,128)
        if norm255:
            return image/255
        elif keras:
            image = np.expand_dims(image, axis=0)
            return preprocess_input(image)[0]
        else:
            return image.astype(np.int16)
        return image
    def display_samples(df, columns=5, rows=2, Ben=True):
        fig=plt.figure(figsize=(5*columns, 4*rows))
        for i in range(columns*rows):
            image_path = df.loc[i,'id_code']
            path = f"F:\kaggleDataSet\diabeticRetinopathy\resized test 19\"+str(image_path)+".jpg"
            if Ben:
                img = load_image_ben_orig(path)
            else:
                img = cv2.imread(path)
                img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
            fig.add_subplot(rows, columns, i+1)
            plt.imshow(img)
        plt.tight_layout()
    display_samples(test_df, Ben=False)
    display_samples(test_df, Ben=True)

  • 相关阅读:
    程序是访问数据库的组件
    Mac搭建Vue
    Sharding-JDBC基本使用,整合Springboot实现分库分表,读写分离
    随意写写
    maven打包工具assembly打包本地jar的解决办法
    Go语言笔记 (2) 变量命名与多重赋值
    Go语言笔记(1)变量的定义与赋值
    c期末笔记(4)
    c期末笔记(3)
    c期末笔记(2)
  • 原文地址:https://www.cnblogs.com/tszr/p/11238034.html
Copyright © 2011-2022 走看看