使用cv和nlp完成图像的读取缩放旋转等……

使用cv和nlp完成图像的读取缩放旋转等

在这里插入图片描述
图1.jpg

读取图片

filename = '1.jpg'
## [Load an image from a file]
img = cv2.imread(filename)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)

在这里插入图片描述

图像 缩放

resize=cv2.resize(img,(600, 600))
plt.imshow(resize)
img=cv2.resize(img, (h, w))  # 最后彩蛋

在这里插入图片描述

图片翻转

dst = cv2.flip(img, 0)
plt.imshow(dst)

在这里插入图片描述

图片旋转

rows,cols,h = img.shape
M = cv2.getRotationMatrix2D(((cols-1)/2.0,(rows-1)/2.0),45, 0.7)
dst = cv2.warpAffine(img,M,(cols,rows))
plt.imshow(dst)

在这里插入图片描述

亮度调节

rows, cols, chunnel = img.shape
blank = np.zeros([rows, cols, chunnel], img.dtype)
dst = cv2.addWeighted(img, 0.6, blank,0.6,0.6)
plt.imshow(dst)

在这里插入图片描述

随机裁剪

import random
import math

class RandomErasing(object):
    def __init__(self, EPSILON=0.5, sl=0.02, sh=0.4, r1=0.3,
                 mean=[0., 0., 0.]):
        self.EPSILON = EPSILON
        self.mean = mean
        self.sl = sl
        self.sh = sh
        self.r1 = r1

    def __call__(self, img):
        if random.uniform(0, 1) > self.EPSILON:
            return img

        for attempt in range(100):
            area = img.shape[0] * img.shape[1]

            target_area = random.uniform(self.sl, self.sh) * area
            aspect_ratio = random.uniform(self.r1, 1 / self.r1)

            h = int(round(math.sqrt(target_area * aspect_ratio)))
            w = int(round(math.sqrt(target_area / aspect_ratio)))
            # print(img,h,w)

            '''
            已经知道裁剪后的长和宽 只需按照 x和y进行保存即可
            '''

            
            # 此处插入代码
            return img


erase = RandomErasing()
img2=erase(img)
plt.imshow(img2)    

品,细品!

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页