Playing with OpenCV
Posted J-A
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Playing with OpenCV相关的知识,希望对你有一定的参考价值。
一、从双目立体视差图中重建三维点云
![](https://image.cha138.com/20221129/165afca04557446d88f788489f7fb5fb.jpg)
1.【视差与深度信息】
2.【用VS+Opencv3.1从双目立体视差图中重建三维点云】
二、斑点检测
Opencv中提供了SimpleBlobDetector的特征点检测方法。
![](https://image.cha138.com/20221129/d913c140c4094ec0af5ecdff08c202ac.jpg)
Reference:
1.【 Opencv中SimpleBlobDetector的使用(斑点检测)】
2.【Opencv2.4.9源码分析——SimpleBlobDetector】
三、寻找图像中最亮的点
逐行遍历,计算像素值最大的点。
四、用OpenCV实现Photoshop算法
1.图像旋转
- warpAffine
- getRotationMatrix2D
2.图像剪切
- MouseCallBack
- rect
3.图像匹配
- matchTemplate
- minMaxLoc
4.抠图
- imgmask
- floodFill
5.亮度对比度调整
- adjustBrightnessContrast
6.毛玻璃效果
![](https://image.cha138.com/20221129/dcf41b1166844a3690df7300f3524e5e.jpg)
7.图像修复
![](https://image.cha138.com/20221129/2a98f5ac3f014d12a7dd4d7f094d2c10.jpg)
8.图像取反
![](https://image.cha138.com/20221129/9cb75a4ba5fe4f338d453683c0e3f58c.jpg)
9.图像马赛克
![](https://image.cha138.com/20221129/2cd5639954804bb0a178625d66bf12e2.jpg)
Reference:
五、bwareopen算法
自己需要用写了一个,和Matlab中bwareaopen的效果应该是几乎一致的,依赖于opencv新函数connectedComponentsWithStats,再也不用先找轮廓再填充了。
![](https://image.cha138.com/20221129/789a96bb5c3a4c0b95677a7e0b9f8a9d.jpg)
![](https://image.cha138.com/20221129/f2e86293c6594f9cb3e6867511c7bff5.jpg)
六、单目相机标定
输入5张图,得到out_camera_data.xml
,采用张正友标定算法。
七、扫描全能王软件
相信很多人手机里都装了个“扫描全能王”APP,平时可以用它来可以扫描一些证件、文本,确实很好用,第一次用的时候确实感觉功能很强大啊算法很牛逼啊。但是仔细一想,其实这些实现起来也是很简单的,我想了下,实现的步骤应该就只有下面三个:
- 将证件轮廓找到
- 提取证件矩形轮廓四点进行透视变换
- 二值化
Reference:
1.[OpenCV探索之路(二十二):制作一个类“全能扫描王”的简易扫描软件】
八、生成棋盘格
![](https://image.cha138.com/20221129/1340fae9e05c4f7abbc1e624ed283520.jpg)
九、图片校正
对任意倾斜的图片,校正到水平位置。
![](https://image.cha138.com/20221129/b64088302ef146049a40ddbbef482636.jpg)
![](https://image.cha138.com/20221129/439b83d2ec634bda845d938a22d2b79f.jpg)
十、腐蚀膨胀
- getStructuringElement
- erode
- dilate
十一、找到图片中的方块
![](https://image.cha138.com/20221129/ab8891973dbc43efb33385b2f5e29266.jpg)
![](https://image.cha138.com/20221129/638110a3a85a424a92439a22d7c65578.jpg)
![](https://image.cha138.com/20221129/3d1bde538ad241dba3886d7cfcec738f.jpg)
![](https://image.cha138.com/20221129/8e74e47306f543c49e05441435630cee.jpg)
十二、图像拼接
图像拼接在实际的应用场景很广,比如无人机航拍,遥感图像等等,图像拼接是进一步做图像理解基础步骤,拼接效果的好坏直接影响接下来的工作,所以一个好的图像拼接算法非常重要。
再举一个身边的例子吧,你用你的手机对某一场景拍照,但是你没有办法一次将所有你要拍的景物全部拍下来,所以你对该场景从左往右依次拍了好几张图,来把你要拍的所有景物记录下来。那么我们能不能把这些图像拼接成一个大图呢?我们利用opencv就可以做到图像拼接的效果!
Reference:
1.【OpenCV探索之路(二十四)图像拼接和图像融合技术】
十三、寻找最大内切圆
- FindBigestContour
- pointPolygonTest
![](https://image.cha138.com/20221129/41d9b5aef44945a28afcee4c516fee53.jpg)
十四、拼图游戏
- 随机调换所有的子图像序列的位置,用于在 Splite image中显示
- 鼠标回调函数,用于获取需要查找的子图像在原图像中的位置,并叠加显示在目标图像中
Reference:
十五、获得物体的主要方向
- 分别获得每个工件的轮廓;
- 处理每个轮廓,采用pca(主成分分析)方法,获得所有轮廓点的集合的中点,主要方向等信息;
- 绘图并返回结果。
Reference:
1.【如何获得物体的主要方向?】
十六、图像细化
![](https://image.cha138.com/20221129/c5f6cdef97b6463fa97e2280813639e2.jpg)
![](https://image.cha138.com/20221129/5c7c35ca8f844f9db1920fbf6bd78e40.jpg)
Reference:
2.细化算法
3.论文 A fast parallel algorithm for thinning digital patterns
———-
十七、寻找轮廓中心点
- 阈值
- 寻找轮廓
- 计算中心点
![](https://image.cha138.com/20221129/e34c18249e804df68d388f6ef5af470b.jpg)
十八、黏连细胞计数
- 寻找该图像的最小凸闭包,
- 凸闭包和凹图形相减得到凹区域
- 提取凹区域的轮廓
- 按照区域面积大小最为权重,选取最大的两个区域作为凹点所在区域
- 遍历这两个区域,寻找距离最短的两个点作为凹点
- 基于该两个凹点分割
![](https://image.cha138.com/20221129/2ce82c1927364a3389978a96befb59ba.jpg)
Reference:
1.【【opencv】凹点切分,种子计数,细胞计数前提 17/7/25更新】
十九、去除印章
- 通道选择
- 二值化
二十、检测椭圆和边
- HoughLinesP
- findContours
- fitEllipse
GitHub:https://github.com/joeaaron/LearningOpenCV
持续更新中……
以上是关于Playing with OpenCV的主要内容,如果未能解决你的问题,请参考以下文章
(转) Playing FPS games with deep reinforcement learning
UVA1482 LA5059 Playing With StonesSG函数