通过OpenCV打开图片
image = cv2.imread("c:/test/2.jpg");
灰度处理
OpenCV是基于灰度图像进行处理的
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY);
经过灰度处理之后的图片,没有彩色
中值滤波,模糊处理
为了减少图片上的噪点,将某点的灰度值用一个邻域内所有灰度值的中间值代替
blur = cv2.medianBlur(gray,7);
整数的取值从1~7,数字越大,越模糊
二值处理
图片上只有两种颜色,黑和白,区分背景
原来黑色变白,其他颜色都卫黑色
threshold = cv2.threshold(blur,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)[1];
边缘检测
检测图像的边缘
canny = cv2.Canny(threshold,100,150);
边缘膨胀
保持原有形状,使边缘更加连贯 白色的边缘更粗
kernel = np.ones((3,3),np.uint8);
创建3行3列的二维数组,每个元素的值都是1
dilate = cv2.dilate(canny,kernel,iterations=5)
iterations表示的使膨胀次数
轮廓检测
查找图片的位置
binary.contours.hinerarchy = cv2.findContours(dilate,cv2.RETR_EXTERNAL,cv2.CHATN_APPROX_SIMPLE)
contours就是查找的轮廓
图像截取
去掉背景之后的图像
resize = cv2.resize(dilate,(1084,669),interpolation=cv2.INTER_AREA);
1084,669是调整之后的图像大小
0条评论
点击登录参与评论