Opecv-Python常用算子库(总结)

news/2024/9/24 23:24:33/

文章目录

  • 1 常用算子梗概
  • 2 实际项目中的总结

1 常用算子梗概

1.1 读取图像 cv2.imread(filename, flags)
1.2 显示图像 cv2.imshow(winname, mat)
1.3 保存图像 cv2.imwrite(filename, mat)
1.4 改变图像大小 cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)
1.5 灰度化 cv2.cvtColor(src, code, dst=None)
1.6 二值化 cv2.threshold(src, thresh, maxval, type)
1.7 边缘检测 cv2.Canny(image, threshold1, threshold2)
1.8 高斯模糊 cv2.GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None)
1.9 中值操作 cv2.medianBlue(src, ksize)
1.10 腐蚀操作 cv2.erode(src, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)
1.11 膨胀操作 cv2.dilate(src, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)
1.12 开运算 cv2.morphologyEx(src, op, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)
1.13 闭运算 cv2.morphologyEx()
1.14 寻找轮廓 cnt = cv2.findContours(edges.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
1.15 图像旋转 cv2.getRotationMatrix2D(center, angle, scale)
1.16 透视变换 cv2.getPerspectiveTransform(src, dst)
1.17 均值滤波 cv2.blur(src, size)
1.18 高斯双边滤波 cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace)
1.19 图像金字塔 cv2.pyrDown(), cv2.pyrUp()
1.20 图像阈值化 cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)
1.21 轮廓面积 cv2.contourArea(cnt)
1.22 轮廓周长 cv2.arcLength(cnt, closed)
1.23 图像融合 cv2.addWeighted(src1, alpha, src2, beta, gamma)
1.24 边缘增强 cv2.Sobel(src, ddepth, dx, dy, ksize)
1.25 图像直方图 cv2.calcHist(images, channels, mask, histSize, ranges)
1.26 直方图均衡化 cv2.equalizeHist(src)
1.27 颜色空间转换 cv2.cvtColor(src, code)
1.28 图像梯度 cv2.Scharr(src, ddepth, dx, dy)
1.29 图像尺寸 cv2.getSize(src)
1.30 通道分离 cv2.split(src)
1.31 通道合并 cv2.merge(channels)
1.32 轮廓近似 cv2.approxPolyDP(curve, epsilon, closed)
1.33 图像修补 cv2.inpaint(src, inpaintMask, inpaintRadius, flags)
1.34 绘制直线 cv2.line(img, pt1, py2, color, thickness)
1.35 绘制矩形 cv2.rectangle(img, pt1, pt2, color, thickness)
1.36 绘制圆形 cv2.circle(img, center, radius, color, thickness)
1.37 绘制多边形 cv2.polylines(img, pts, isClosed, color, thickness)
1.38 文字绘制 cv2.putText(img, text, org, fontFace, fontScale, color, thickness)
1.39 图像旋转 cv2.warpAffine(src, M, dsize)
1.40 透视变换 cv2.warpPerspective(src, M, dsize)
1.41 得到图像通道数 cv2.getNumChannels(src)
1.42 图像类型 cv2.getType(src)
1.43 图像平移 cv2.warpAffine(src, M, dsize)
1.44 图像修剪 img[startY:endY, startX:endX]
1.45 图像拼接 cv2.vconcat(src1, src2)
1.46 图像填充 cv2.copyMakeBorder(src, top, bottom, left, right, borderType, value)
1.47 图像反转 cv2.flip(src, flipCode)
1.48 图像模板匹配 cv2.matchTemplate(image, templ,  method)
1.49 图像统计 cv2.mean(src)
1.50 图像分割 cv2.grabCut(img, mask, rect, bgdMode, fgdMode, iterCount, mode)
1.51 图像直方图比较 cv2.compareHist(H1, H2, method)
1.52 图像轮廓绘制 cv2.drawContours(image, contours, contourldx, color, thickness)
1.53 图像轮廓矩 cv2.moments(cnt)
1.54 图像轮廓近似 cv2.approxPolyDP(curve, epsilon, closed)
1.55 图像轮廓外接矩形 cv2.boundingRect(cnt)
1.56 图像轮廓最小外接矩形 cv2.minAreaRect(cnt)
1.57 图像轮廓最小闭圆 cv2.minEnclosingCircle(cnt)
1.58 图像轮廓最小闭椭圆 cv2.FitEllipse(cnt)
1.59 图像角点检测 cv2.goodFeaturesToTrack(image, maxCorners, quelityLevel, minDistance)
1.60 图像透视变换 cv2.getPerspectiveTransform(src, dst)
1.61 图像直方图归一化 cv2.normalize(src, dst, alpha, beta, norm_type, dtype, mask)
1.62 图像直方图反向投影 cv2.calcBackProject(images, channels, hist, ranges, scale)
1.63 图像自适应直方图均衡化 cv2.createCLAHE(clipLimit, tileGridSize)
1.64 图像边缘连接 cv2.connectedComponents(image, connectivity, Itype)

2 实际项目中的总结

2.1 blanck_image = np.zero_like(img)	# 创建空图像
2.2 cv2.drawContours(blanck_image, filterd_contours, -1, (255, 255, 255), thickness=cv2.FILLED)在blanck_image上绘制filtered_contours轮廓,-1表示全部绘制,用白色,填充绘制。
2.3 cnt = cv2.findContours(edges.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)寻找轮廓
2.4 Cropped = result_img[10:375, 25:560]裁剪图像
2.5 result_img = four_point_transform(image, docCnt.reshape(4, 2))  
# 对原始图像进行四点透视变换
在此之前,需要对得到的轮廓进行降序,然后获取近似的轮廓,得到四个角的点。
(1)得到轮廓,对轮廓降序
Contours = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
Contours = contours[1] if imutils.is_cv2 else contours[0]
# 按照面积来降序排序
Contours = sorted(contours, key=cv2.contourArea, reverse=True)2)先对近似轮廓降序,再拟合近似轮廓
for c in contours:
peri = cv2.arcLength(c, True)						// 求轮廓的周长
Approx = cv2.approxPolyDP(c, 0.02*peri, True)		// 获取近似的轮廓
If len(Approx)==4:docCnt = approx.break3)确定近似轮廓的四个点
Import imutils.perspective import four_point_transform
Result_img = four_point_transform(image, docCnt.reshape(4, 2))

http://www.ppmy.cn/news/1452880.html

相关文章

深度学习中损失函数和激活函数的选择

文章目录 前言 你需要解决什么问题? 你想预测数值吗? 你想预测分类结果吗? 回归:预测数值 分类:预测二元结果 分类:从多个类别中预测单个标签 分类:从多个类别中预测多个标签 总结表 前言 本篇…

安卓 app icon大小 安卓app界面尺寸大小

移动应用的界面设计画布尺寸设计多大(特别是Android)、图标和字体大小怎么定、需要设计多套设计稿么、如何切图以配合开发的实现? 本篇将结合iOS和android官方的设计规范、搜集的资料以及工作中的摸索,来分享移动应用界面设计中的…

docker部署小试

一 1.1 需求:根据docker部署nginx并且实现https 1.2 前期准备 准备一台装备好的docker-ce虚拟机,容量至少满足4G/2C,同时做好关闭防火墙的操作 systemctl stop firewalld setenforce 0 1.3 实验部署 1.3.1 创建并进入文件夹 1.3.2 编辑run脚本…

C# Web控件与数据感应之 ListControl 类

目录 关于数据感应 ListControl 类类型控件 范例运行环境 数据感应通用方法 设计 实现 调用示例 数据源 调用 小结 关于数据感应 数据感应也即数据捆绑,是一种动态的,Web控件与数据源之间的交互,诸如 System.Web.UI.WebControls 里…

oracle清空表的delete from和truncate table的優劣

1.使用delete from 優點: 1.保留記錄,delete from不會立即刪除數據而是保留記錄 2.允許回滾,delete from的數據不會立即刪除數據,且會記錄到binlog裡面,後期可以回滾數據 3.可以選擇性的刪除數據 缺點 1.不會釋放…

Meta Llama 3 使用 Hugging Face 和 PyTorch 优化 CPU 推理

原文地址:meta-llama-3-optimized-cpu-inference-with-hugging-face-and-pytorch 了解在 CPU 上部署 Meta* Llama 3 时如何减少模型延迟 2024 年 4 月 19 日 万众期待的 Meta 第三代 Llama 发布了,我想确保你知道如何以最佳方式部署这个最先进的&…

数据结构之链表深度讲解

小伙伴们,大家好呀,上次听我讲完顺序表想必收获不少吧,嘿嘿,这篇文章你也一样可以学到很多,系好安全带,咱们要发车了。 因为有了上一次顺序表的基础,所以这次我们直接进入正题,温馨…

一本专业130+总分400+上海交通大学819考研经验上交电子信息与通信工程上岸,真题,大纲,参考书。

今年专业课819信号系统与信号处理130,总分400,复试表现中规中矩(初试分数查到才开始复习复试,希望大家汲取教训,初试考完就可以录取开始准备复试),交大初试比重很高,良心学校&#x…