先下载这三个数据
把地址考入进去是乱码,不懂要在哪个里面去下载?
数据标注处理
def parse_json(d):
arr = np.array([
d[‘top’], d[‘height’], d[‘left’], d[‘width’], d[‘label’]
])
arr = arr.astype(int)
return arr
img = cv2.imread(’…/input/train/000000.png’)
arr = parse_json(train_json[‘000000.png’])
plt.figure(figsize=(10, 10))
plt.subplot(1, arr.shape[1]+1, 1)
plt.imshow(img)
plt.xticks([]); plt.yticks([])
for idx in range(arr.shape[1]):
plt.subplot(1, arr.shape[1]+1, idx+2)
plt.imshow(img[arr[0, idx]:arr[0, idx]+arr[1, idx],arr[2, idx]:arr[2, idx]+arr[3, idx]])
plt.title(arr[4, idx])
plt.xticks([]); plt.yticks([])
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tEqYN7Qr-1613922909809)(IMG/Task01/19.png)]
好像之前群里看到说标注得怎么弄?这里的标注是要照搬还是自己弄?
#### 2.2.2 OpenCV
OpenCV是一个跨平台的计算机视觉库,最早由Intel开源得来。OpenCV发展的非常早,拥有众多的计算机视觉、数字图像处理和机器视觉等功能。OpenCV在功能上比Pillow更加强大很多,学习成本也高很多。
|效果| 代码 |
|----|-----|
|[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NbAmrhqN-1613923020320)(IMG/Task02/Pillow读取原图.png)] | import cv2<br># 导入Opencv库<br>img = cv2.imread('cat.jpg')<br># Opencv默认颜色通道顺序是BRG,转换一下<br>img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) |
|[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AOnsU1Va-1613923020321)(IMG/Task02/opencv灰度图.png)] | import cv2<br># 导入Opencv库<br>img = cv2.imread('cat.jpg')<br>img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)<br># 转换为灰度图 |
|[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-97oA8IQA-1613923020322)(IMG/Task02/opencv边缘检测.png)] | import cv2<br># 导入Opencv库<br>img = cv2.imread('cat.jpg')<br>img =cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)<br># 转换为灰度图<br># Canny边缘检测<br>edges = cv2.Canny(img, 30, 70)<br>cv2.imwrite('canny.jpg', edges) |
这里有个OpenCV视觉库,这个不太懂,感觉是个特别的专业的库,类似于pandas。
2.3.2 常见的数据扩增方法
在常见的数据扩增方法中,一般会从图像颜色、尺寸、形态、空间和像素等角度进行变换。当然不同的数据扩增方法可以自由进行组合,得到更加丰富的数据扩增方法。
以torchvision为例,常见的数据扩增方法包括:
- transforms.CenterCrop 对图片中心进行裁剪
- transforms.ColorJitter 对图像颜色的对比度、饱和度和零度进行变换
- transforms.FiveCrop 对图像四个角和中心进行裁剪得到五分图像
- transforms.Grayscale 对图像进行灰度变换
- transforms.Pad 使用固定值进行像素填充
- transforms.RandomAffine 随机仿射变换
- transforms.RandomCrop 随机区域裁剪
- transforms.RandomHorizontalFlip 随机水平翻转
- transforms.RandomRotation 随机旋转
- transforms.RandomVerticalFlip 随机垂直翻转
这里感觉主要是做视觉处理的!
文档中介绍了代码读取,以及后续操作,主要自己还没完全有时间弄懂,后面再继续学习!