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

posted @ 2020-06-23 13:33  xyfun72  阅读(209)  评论(0编辑  收藏  举报