Mask RCNN与mnist

最近在学MaskRCNN的东东,也找了些源码尝试着跑了跑,发现有些源码存在问题,成功填坑后分享一下。改自以下博客:

https://blog.csdn.net/wc781708249/article/details/79486819


# -*- coding: utf-8 -*-
"""
@author: liguo_yao
"""

import os
import sys
import random
import math
import re
import time
import numpy as np
import cv2
import matplotlib
import matplotlib.pyplot as plt


from mrcnn.config import Config
from mrcnn import utils
import mrcnn.model as modellib
from mrcnn import visualize
from mrcnn.model import log
from tensorflow.examples.tutorials.mnist.input_data import read_data_sets


mnist=read_data_sets('E:/mnist',one_hot=False)
def Image_Processing(image):
    '''缩放到32x32,像素值转成0、1'''
    image=np.reshape(image,[28,28]) # [28,28]
    img=cv2.resize(image,(32,32)) # [32,32]


    img_mask = np.round(img) # 转成对应的掩膜 像素值0、1
    return img,img_mask


def random_comb(mnist):
    num_images=mnist.train.num_examples
    
    list=range(0,num_images)
    indexs=random.sample(list,16) # 随机选择16个索引值
    


    indexs=np.asarray(indexs,np.uint8).reshape([4,])
    class_ids = mnist.train.labels[indexs.flatten()]
    comb_image=np.zeros([32*4,32*4],np.float32)
    mask=[]
    for i in range(4):
        for j in range(4):
            image_mask = np.zeros([32 * 4, 32 * 4], np.uint8)
            img_data=mnist.train.images[indexs[i,j]]
            img, img_mask=Image_Processing(img_data)
            comb_image[i*32:(i+1)*32,j*32:(j+1)*32]=img
            image_mask[i*32:(i+1)*32,j*32:(j+1)*32]=img_mask
            mask.append(image_mask)


    return comb_image,np.asarray(mask).transpose([1,2,0]),class_ids


comb_image,mask,class_ids=random_comb(mnist)


print(class_ids)


plt.subplot(121)
plt.imshow(comb_image,'gray')
plt.title('original')
plt.axis('off')


plt.subplot(122)
plt.imshow(mask[:,:,9],'gray')
plt.title(class_ids[9])
plt.axis('off')


plt.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值