OpenCV基础知识总结

东西太多太杂,总是学了又忘,所以想在这里记些学习心得和笔记,各位大佬看看就行,不喜勿喷,有啥不对的还请不吝赐教

1.python环境

因为我之前已经学过一些,可以跟着教程配python虚拟环境和opencv环境,网上教程很多的

2.边界填充

就是对图片的边缘进行填充,一共有以下几种方法

3.数值计算

有两个加法:

img1+img2.      //超过255的减去256

cv.add(img1,img2)        //超过255就取最大的255、

两个图片的像素不一样时,需要将一张图片大小转换为一致的

img_dog=cv.resize(img_dog,(500,400)).  :把狗的图片转换为宽500,高400的图片

img = cv.imread('../static/pic1.jpg',1)
# 表示把图片的长和宽放大三倍
res=cv.resize(img,(0,0),fx=3,fy=3)

图像融合:

按权重融合

4.阈值处理

dst=cv.threshold(img,127,255,cv.THRESH_BINARY)

src:输入图像

dat:输出图像

5.图像平滑

img = cv.imread('../static/pic1.jpg',1)
# 调用均值滤波函数
img=cv.blur(img,(3,3))

cv.imshow('win1',img)
cv.waitKey(0)
cv.destroyAllWindows()

归一化:用领域像素的和去除以面积

方框滤波、高斯滤波、中值滤波、

中值滤波对于椒盐噪声和斑点噪声效果比较好

6.形态学腐蚀:

膨胀:

开运算:先腐蚀,再膨胀

闭运算:先膨胀,后腐蚀

礼帽:原始输入-开运算结果

黑帽:比运算-原始输入

7.图像梯度

sobel算子:

减出来如果是一个负数,需要将其转换为正数:convertScaleAbs

拉普拉斯算子:涉及到了二阶导,所以对变化率大的效果好,但是对噪音也比较敏感

8.Canny边缘检测

非极大值抑制:更加准确的找到梯度

双阈值检测:判断题读是否大于最大阈值,判断是否联通,精确的找出边缘

9.图像金字塔

1.高斯金字塔:下采样

1️⃣将Gi与高斯卷积核卷积

2️⃣将所有的偶数行和列去掉

上采样,先扩充两倍,用0填充,然后用卷积和卷积

拉普拉斯金字塔:

10图像轮廓

边缘是零零散散的,轮廓是一个整体

就是找一个图像,把得到的轮廓画上去

11.OCR识别

1.边缘检测

2.获取轮廓

3.坐标变换,变换为方方正正的 (平移+旋转)

4.OCR 识别:pytesseract

12.脚点检测

harris角点检测

做减法操作(相当于来说比较会读变化情况)

根据上面的公式计算出C(灰度变换),泰勒变换,然后转换为矩阵,求其特征值,最终变化以后是一个实对称矩阵,必然线性无关,特征值就是矩阵的解,故求得两个特征值,根据特征值的大小就可以判断出该像素点是不是角点。

根据得到的两个特征值的特点可以用一个角点响应R值来判断是否为角点

13.SIFT算法

就是计算像素点的方向和模值(通过差分尺度变换)

14.特征匹配

Brute-Force蛮力匹配

计算出特征点和特征向量以后比较其欧式距离,从而进行匹配

作用:进行图像拼接

去掉判断错误的点:

其实就是求变换矩阵

迭代的随机取四个点,取重合范围内最多的四个点就可以确定最终的变换矩阵

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值