File size: 2,312 Bytes
b540897
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from __future__ import division
from PIL import Image
import argparse
import torch
import torchvision
import torch.nn as nn
import numpy as np
import torchvision.utils as vutils
import matplotlib.pyplot as plt
import numpy as np
import cv2

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")


def remove_the_blackborder(image_p):
    image = cv2.imread(image_p,cv2.IMREAD_COLOR)  # 读取图片
    img = cv2.medianBlur(image, 5)  # 中值滤波,去除黑色边际中可能含有的噪声干扰
    b = cv2.threshold(img, 3, 255, cv2.THRESH_BINARY)  # 调整裁剪效果
    binary_image = b[1]  # 二值图--具有三通道
    binary_image = cv2.cvtColor(binary_image, cv2.COLOR_BGR2GRAY)
    try:
        edges_y, edges_x = np.where(binary_image == 255)  ##h, w
        bottom = min(edges_y)
        top = max(edges_y)
        height = top - bottom

        left = min(edges_x)
        right = max(edges_x)
        height = top - bottom
        width = right - left

        res_image = image[bottom:bottom + height, left:left + width]

    except:
        res_image=image
        print(image_p)
    return res_image



def load_image(image_path, transform=None, max_size=None, shape=None):
    # image=Image.fromarray(image)
    # image = cv2.imread(image_path)
    image = Image.open(image_path)
    #image = Image.open(image_path)  # 读入图片, 下面是一些图片的预处理操作
    if max_size:
        scale = max_size / max(image.size)
        size = np.array(image.size) * scale
        # print(size)         [400.         306.78733032]
        image = image.resize(size.astype(int), Image.ANTIALIAS)  # 改变图片大小

    if shape:
        image = image.resize(shape, Image.LANCZOS)  # Image.LANCZOS是插值的一种方式

    if transform:
        # print(image)         # PIL的JpegImageFile格式(size=(W,H))
        image = transform(image).unsqueeze(0)
        # print(image.shape)   #   [C, H, W]
    return image



# fcontent = load_image("./image/0.jpg", transform, shape=[256, 256])
# for i in range(249):
#     name="./image/"+str(i+1)+".jpg"
#     content = load_image(name, transform, shape=[256, 256])
#     fcontent=torch.cat((fcontent,content),-4)
#     print(fcontent.shape)