在Tensorflow之十五讲到采用python网络爬虫批量抓取图像,然而,由于抓取的图像尺寸不一,同时大多为RGB三通道的图像,因此需对图像进行处理。本文采用Opencv对的图像进行处理。首先将图像转为灰度图,采用物体检测的方法,抓取图像中的物体,裁剪成250x250尺寸的图像。
一、Opencv图像处理过程
1.1 读取原图
import cv2
import numpy as np
input_img = cv2.imread('1.jpg')
cv2.namedWindow("img", 0)
cv2.imshow('img',input_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
1.2 转化成灰度图
img_gray = cv2.imread('mm/2.jpg',cv2.IMREAD_GRAYSCALE)
1.3 获得高水平梯度和低垂直梯度的图像区域
gradX = cv2.Sobel(img_gray, ddepth=cv2.cv.CV_32F, dx=1, dy=0, ksize=-1)
gradY = cv2.Sobel(img_gray, ddepth=cv2.cv.CV_32F, dx=0, dy=1, ksize=-1)
img_gradient = cv2.subtract(gradX, gradY)
img_gradient = cv2.convertScaleAbs(img_gradient)