图像处理之灰度化,二值化,腐蚀,膨胀
Posted 利弗莫尔_truefan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像处理之灰度化,二值化,腐蚀,膨胀相关的知识,希望对你有一定的参考价值。
灰度化,在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值。
二值图像(Binary Image)是指将图像上的每一个像素只有两种可能的取值或灰度等级状态
腐蚀就是将图像的边缘腐蚀掉。作用就是将目标的边缘的“毛刺”踢除掉。
膨胀就是将图像的边缘扩大些。作用就是将目标的边缘或者是内部的坑填掉。
使用腐蚀与膨胀,可以使目标表面更平滑。
import cv2
import numpy
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
def get_gray_scale(img_path):
# 将图像灰度化
img = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)
print('大小:{}'.format(img.shape))
print("类型:%s" % type(img))
# 让书和背景分离,这里我们将图片二值化
retVal, image = cv2.threshold(img, 100, 255, cv2.THRESH_BINARY)
# 开始进行腐蚀操作
corrosion_img = cv2.getStructuringElement(cv2.MORPH_CROSS, (10, 10)) ##腐蚀预处理,确定处理核的大小,矩阵操作
img3 = cv2.erode(image, corrosion_img, iterations=10) # 进行腐蚀操作
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
expand_pic = cv2.dilate(img3, kernel)
pic_matrix = numpy.array(expand_pic)
print(pic_matrix)
cv2.imshow('grayimg', expand_pic)
cv2.waitKey(0)
if __name__=='__main__':
# get the img_path
sample_img_path = './sample1.jpg'
get_gray_scale(sample_img_path)
以上是关于图像处理之灰度化,二值化,腐蚀,膨胀的主要内容,如果未能解决你的问题,请参考以下文章
opencv-python基础用法详细代码-图片加载-ROI-边缘滤波-二值化-轮廓提取-膨胀腐蚀等
OpenCV车辆识别 C++ OpenCV 原理介绍 + 案例实现