OpenCV学习 阶段总结
opencv图像数据类型:
- CV_8U - 8-bit unsigned integers ( 0..255 )
- CV_8S - 8-bit signed integers ( -128..127 )
- CV_16U - 16-bit unsigned integers ( 0..65535 )
- CV_16S - 16-bit signed integers ( -32768..32767 )
- CV_32S - 32-bit signed integers ( -2147483648..2147483647 )
- CV_32F - 32-bit floating-point numbers ( -FLT_MAX..FLT_MAX, INF, NAN )
- CV_64F - 64-bit floating-point numbers ( -DBL_MAX..DBL_MAX, INF, NAN )
--S|U|F--S--代表---signed int---有符号整形
U--代表--unsigned int--无符号整形
F--代表--float--------- 浮点型
--C ---一张图片的通道数,比如:
1--灰度图片--grayImg---是--单通道图像
2--RGB彩色图像---------是--3通道图像
3--带Alph通道的RGB图像--是--4通道图像
opencv数据类型:
Mat:n维的图像矩阵
Mat_: 指定矩阵中的数据类型,如Mat_<float> src,这样就可以简单的使用src(x, y)来得到像素值
Mat cMatrix = Mat::eye(3, 3, CV_32F); cMatrix .at<float>(0, 0) = 2.5; cout << cMatrix .at<float>(0,0) << endl;//输出结果2.5
Mat_<float> cMatrix = Mat::eye(3, 3, CV_32F); cMatrix(0, 0) = 2.5; cout << cMatrix(0,0) << endl;//输出结果2.5 cout << cMatrix.at<float>(0,0) << endl;//输出结果2.5
Point:默认为int 即Point2i
Point2f:Point类的两个数据x,y为float类型
Vec3b:uchar类型的数据 长度为3 一般8U类型的RGB图像每个像素位置可以用<Vec3b>
Vec4i:有符号的int类型数据 长度为4
第一部分:
21Canny边缘检测:Canny() src.copyTo(dst, mask) 图像像素取反~
22霍夫直线检测:HoughLines() cvRound()取整 HoughLinesP()
23霍夫园检测:中值滤波medianBlur() HoughCircles() src.copyTo(dst)
24重映射:remap() while(waitKey(500)) 缩小 翻转
25直方图均衡化:equalizeHist()
26计算直方图:分离通道split() 计算直方图calcHist() 四舍五入取整cvRound() 将不同通道直方图绘制在同一个图中
27直方图比较:数字转字符串 色彩空间HSV 直方图比较compareHist()
28直方图反向投影:拆分通道新方法:mixChannels() 反向投影calcBackProject() 巩固绘制直方图
29模板匹配:匹配方法TM_ 模板匹配matchTemplate 寻找最大最小值minMaxLoc
30轮廓发现:
31
32
33
34
35