OpenCv学习日记

配置:Ubuntu20.04、vsode、anaconda3、python

大二本科生,有一些Python基础,现在学习一些opencv的基本操作,之后会做一些机械臂抓取中的识别问题

一方面好记性不如烂笔头嘛,另一方面是做个记录,督促自己学习。如果能给其他新手带来一点点帮助就更好啦!额,是学到中途才想起来写博客的,所以就先从目前学习的部分开始写起,前面的部分后面会赶上的。

目前是跟着官方教程进行学习,网址如下:https://docs.opencv.org/4.x/index.html

我看的是4.10的版本,几个版本之间差别不是很大,可以先看这个。

点开opencv-Python教程,目前我学到了opencv中的图像处理——平滑图像。

本节的目的是学会使用低通滤波器模糊图像。

首先尝试了平均滤波器,内核是一个5*5的矩阵,将内核下方对应的25个像素取平均值替换中间的像素,对图像的所有像素进行这样的操作。

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
 
img = cv.imread('opencv_logo.png')
assert img is not None, "file could not be read, check with os.path.exists()"
 
kernel = np.ones((5,5),np.float32)/25
dst = cv.filter2D(img,-1,kernel)
 
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(dst),plt.title('Averaging')
plt.xticks([]), plt.yticks([])
plt.show()

代码如上,这些教程里基本都会涉及到numpy、opencv、matplotlib这几个库,需要提前下载。

图片的路径记得修改为自己的路径。

我用的是之前一张梅西的图片,可以看到效果。

接下来对代码稍微解读一下,前面的导入库和图片不说了。

这部分是创建一个卷积核,除以25是为了最后的总和为1。

kernel = np.ones((5,5),np.float32)/25

这里是使用cv.filter2D函数对图像进行滤波处理,第一个参数是输入图像,第二个是目标图像的深度,-1表示与输入图像相同,第三个是卷积核

dst = cv.filter2D(img, -1, kernel)

后面就是一些显示图像标题什么的命令了,不过多阐述了。

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值