opencv-python基础用法详细代码-图片加载-ROI-边缘滤波-二值化-轮廓提取-膨胀腐蚀等

本文介绍了opencv-python的基础用法,包括图片加载、ROI选择、边缘滤波、二值化、轮廓提取、膨胀腐蚀等操作。通过实例代码展示了如何进行像素运算、图像模糊与锐化、对象测量以及轮廓区分等,为opencv-python的初学者提供了详细的实践指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录      

1.1图像的导入和导出

1.2像素运算

1.3ROI与填充

1.4模糊与锐化操作

1.5边缘保留滤波

1.6图像二值化

1.7图像直方图

1.8绘制外轮廓

1.9对象测量

1.10区分指定外轮廓

1.11腐蚀与膨胀

1.12开闭操作


废话不多说,直接上代码

1.1图像的导入和导出

import cv2                 #导入opencv库

def get_image_info(image):     #定义加载图像信息函数
    print(type(image))         #读取该图片类别
    print(image.shape)         #加载图像的长宽和通道数
    print(image.size)          #加载图像的大小
    print(image.dtype)         #
### 车牌识别与处理技术概述 车牌识别是一项复杂的任务,涉及到多个图像处理阶段。通过Python结合OpenCV可以有效地完成这一过程。该流程主要包括以下几个方面: #### 图像预处理 为了提高后续处理步骤的准确性,首先需要对原始采集到的车辆图片进行必要的预处理工作。这一步骤通常包括但不限于颜色空间转换、去噪和平滑滤波等操作。 ```python import cv2 from matplotlib import pyplot as plt import numpy as np def preprocess_image(image_path): # 加载并转为灰度图 image = cv2.imread(image_path) gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 使用高斯模糊减少噪音 blurred = cv2.GaussianBlur(gray, (5, 5), 0) return blurred ``` #### 车牌定位 利用边缘检测算法(如Canny算子)、轮廓查找以及几何形状分析来确定可能存在的车牌位置。对于某些特定国家/地区的标准尺寸和比例特征也可以辅助判断。 ```python def locate_license_plate(preprocessed_img): edged = cv2.Canny(preprocessed_img, 30, 200) contours, _ = cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)[-2:] contours = sorted(contours, key=cv2.contourArea, reverse=True)[:10] screenCnt = None for c in contours: peri = cv2.arcLength(c, True) approx = cv2.approxPolyDP(c, 0.018 * peri, True) if len(approx) == 4: screenCnt = approx break mask = np.zeros(preprocessed_img.shape,np.uint8) new_image = cv2.drawContours(mask,[screenCnt],0,255,-1,) new_image = cv2.bitwise_and(preprocessed_img,preprocessed_img,mask=mask) return new_image, screenCnt ``` #### 字符分割与识别 一旦成功锁定了车牌所在区域,则进一步对该部分实施细化处理,比如二值化腐蚀膨胀等形态学变化;最后借助于OCR库(例如Tesseract)来进行文字解析。 ```python try: from PIL import Image except ImportError: import Image import pytesseract def recognize_characters(roi_image): text = pytesseract.image_to_string(Image.fromarray(roi_image)) return text.strip() ``` 上述代码片段展示了如何使用Python配合OpenCV执行基本的车牌识别任务[^1]。值得注意的是,在真实环境中部署此类解决方案时还需考虑到更多变量因素的影响,如不同天气状况下的光线强度差异、摄像头安装高度角的变化或是牌照本身的损坏程度等问题都可能导致最终效果有所偏差[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug生成中

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值