Outline:
1.CV背景介绍
2.OpenCV基础
3.图像的基本操作:遍历图像,ROI选取
4.Python环境搭建
5.机器学习在CV中的应用:KNN与Kmeans
一、什么是Computer Vision(CV)
计算机视觉的目的:通过写程序来解释图片。
图像处理:输入图像,输出图像
计算机视觉:输入图像,输出图像的理解。
二、图像处理库
图像处理库:
OpenCV
CxImage ~= OpenCV1.0
CImg 显示做的好
FreeImage 大量使用指针读速度快,读到图像的信息全
HALCON 商用精密测量
项目:
OpenBR 人脸识别项目
EasyPR 识别车牌
(三)OpenCV安装配置
安装配置参考浅墨博客:博客链接
因为之前学过OpenCV,所以就安装配置了好多次了,但我一般都是用学校的电脑,笔记本上没配。本来配置很顺手了,这次遇到一个问题:无法打开文件“opencv_ml249d.lib”。找了半天没找出配置步骤上出什么问题,看浅墨博客找到了解决方法:项目->属性管理器->Debug|Win32->Microsoft.Cpp.Win32.userDirectories中的属性页面->连接器->常规里面的附加库目录中加入相应的lib文件目录。
还有就是,属性管理器在图->其他管理器里里,老找不着。。。
可安装插件ImageWatch:下载链接,能显示Mat内容,方便调试
(四)图像处理基础知识
一、彩色图像存储:BGR
二、Mat
1、常用构造函数
2、全零矩阵、全一矩阵、对角线为1矩阵
Mat Z = Mat::zeros(2, 3, CV_8UC1);
cout << "Z=" << Z << endl;
Mat O = Mat::ones(2, 3, CV_32F);
cout << "O=" << O << endl;
Mat E = Mat::eye(2, 3, CV_64F);
cout << "E=" << E << endl;
3、ROI:
1)、感兴趣区域的设置
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main(int argc, char *argv[])
{
Mat pImg = imread("Lena.jpg", 1);
Rect rect(180, 200, 200, 200);//(x,y)=(180,200),w=200,height=200
Mat roi = Mat(pImg, rect);
Mat pImgRect = pImg.clone();//深拷贝
rectangle(pImgRect, rect, Scalar(0, 255, 0), 2);
imshow(