@[TOC]
计算机视觉作业代码托管仓库,代码在vs2017或python 3.7环境下运行成功。
记录下这段有收获的日子。
了解整个边缘检测的过程和算法实现,算法包括:高斯滤波,sobel算子canny算子求得梯度幅值图,非最大化抑制法,滞后阈值处理法,以及广度搜索去除短边缘等。
检测圆和检测直线。使用random hough transform的**,坐标没有映射到极坐标,效果不好。
较好的霍夫变换代码间Ex7.1
直方图均衡化:灰度图均衡化,彩色图三种方式的均衡化(HSV <->RGB)
均衡化 👇
利用全局统计信息在lab空间进行色彩迁移。
提取色彩风格 .
提取图像内容。
迁移结果
👇
使用三角网格剖分+仿射变换实现。
全景图拼接。只实现了拼接两张图的效果,拼第三张会严重失真,初步考虑是因为特征点更新出错,但我实在看不出来哪里错了,DDL快到了orz,尽力而为。。。
第三方库: vlfeat
拼接结果👇
使用图片分割中的Ostu方法提取边缘,霍夫变换检测直线后,然后利用仿射变换矫正。
Ostu 分割结果
矫正结果。
使用Adaboost方法实现手写体分类,数据集为mnist。识别率最高为91.47%。
同时提供了svm,decisiontree分类的sklearn代码。
略。。
提取A4纸上的数字,然后使用OpenCV3.4中的SVM模型预测数字。流程如下:
- canny 进行边缘检测
- 霍夫变换提取A4纸四条边,得到4个角点
- 根据角点进行矫正,得到A4纸
- A纸使用自适应的阈值分割法得到数字边缘,并适度扩张
- 水平和竖直划分得到字符子图。
- 使用 mnist 训练SVM模型,得到分类器并保存参数文件。下次使用直接加载分类器参数文件。
- 字符子图使用插值缩小为28*28,输入SVM分类器,输出预测结果。