def getIimg(image_filename, net, number_of_classes):

    from tf_image_segmentation.models.fcn_32s import FCN_32s

    im = Image.open(image_filename)
    heatMap = np.empty((im.size[1], im.size[0], number_of_classes))

    image_filename_placeholder = tf.placeholder(tf.string)
    feed_dict_to_use = {image_filename_placeholder: image_filename}
    image_tensor = tf.read_file(image_filename_placeholder)
    image_tensor = tf.image.decode_jpeg(image_tensor, channels=3)
    # Fake batch for image and annotation by adding leading empty axis.
    image_batch_tensor = tf.expand_dims(image_tensor, axis=0)
    # Be careful: after adaptation, network returns final labels and not logits
    FCN_32s = adapt_network_for_any_size_input(FCN_32s, 32)
    if imgNum == 0 and net_reuse == 0:
        upsampled_logit, fcn_16s_variables_mapping_train = FCN_32s(
            image_batch_tensor=image_batch_tensor,
            number_of_classes=number_of_classes,
            is_training=False,
            reuse=None)
    else:
        upsampled_logit, fcn_16s_variables_mapping_train = FCN_32s(
            image_batch_tensor=image_batch_tensor,
            number_of_classes=number_of_classes,
            is_training=False,
            reuse=True)

    pred = tf.argmax(upsampled_logit, dimension=3)
    probabilities = tf.nn.softmax(upsampled_logit)
    initializer = tf.local_variables_initializer()
    saver = tf.train.Saver()
    cmap = plt.get_cmap('bwr')

    with tf.Session() as sess:
        sess.run(initializer)
        saver.restore(sess, net)
        image_np, pred_np, probabilities_np = sess.run(
            [image_tensor, pred, probabilities], feed_dict=feed_dict_to_use)

    for i in range(0, number_of_classes):
        heatMap[:, :, i] = probabilities_np.squeeze()[:, :, i]

    iimg = heatMap.cumsum(axis=0).cumsum(axis=1)

    return iimg
    #
    #     img = cv2.imread(image_filename)

    image_filename_placeholder = tf.placeholder(tf.string)

    # feed_dict_to_use = {image_filename_placeholder: image_filename}

    image_tensor = tf.read_file(image_filename_placeholder)

    image_tensor = tf.image.decode_jpeg(image_tensor, channels=3)

    # Fake batch for image and annotation by adding leading empty axis.
    image_batch_tensor = tf.expand_dims(image_tensor, axis=0)

    # Be careful: after adaptation, network returns final labels and not logits
    FCN_32s = adapt_network_for_any_size_input(FCN_32s, 32)

    # if imgNum == 0:
    #     reuse_var = False
    # else:
    #     reuse_var = True

    upsampled_logit, fcn_16s_variables_mapping_train = FCN_32s(
        image_batch_tensor=image_batch_tensor,
        number_of_classes=number_of_classes,
        is_training=False,
        reuse=False)

    imgNum += 1

    upsampled_logit_resized = tf.image.resize_images(upsampled_logit,