博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV.概念(读书笔记)
阅读量:5260 次
发布时间:2019-06-14

本文共 3539 字,大约阅读时间需要 11 分钟。

ZC:学习OpenCV.pdf

 

1、多通道矩阵(学习OpenCV.pdf)

 1.1、在学习opencv的时候看到多通道矩阵这一概率,恳求大神告诉我一下什么意思_百度知道.html()

  

 1.2、【OpenCV学习】多通道矩阵的赋值和取值 - gnuhpc - 博客园.html()

 

2、ROI (学习OpenCV.pdf)

 ROI(感兴趣区域)_百度百科.html()

  

  ZC:Pdf.P81(书.P50) 有关于 ROI的知识 和 COI的知识

 

3、通道 (学习OpenCV.pdf)  Pdf.P78(书.P47)

  

  

    ZC:"n×3"应该就是 上图中 左边的那个样子,"3×n"应该是如下样子:

      x0 x1 x2 x3 x4 x5 x6 x7 x8 x9

      y0 y1 y2 y3 y4 y5 y6 y7 y8 y9
      z0 z1 z2 z3 z4 z5 z6 z7 z8 z9

    ZC:但是 如果真是这样的话,通道 又不太好理解了:这里 "n×3"和"3×n" 都是 单通道,"n×3" 正好 连续的 x0 y0 z0 为一组,这样访问起来 效率最高,应该就是 "运行最快的索引",但是 "3×n"的 x0 y0 z0 它们的内存不连续  不好理解...

    ZC:个人 结合上面的图的理解:"n×1"和"1×n"都是1维的 而每次 读却需要读3个浮点 ∴需要3通道。

    ZC:    而 "n×3"和"3×n" 都是2维的 可以每次读3个浮点 于是只需要 单通道

    ZC:    这个理解 还是觉得 不对...   而且 不能解释 "3×n" 中  x0 y0 z0 中不连续的现象...

  

  ZC:C维对象 的 N维数组、1维对象 的 (N+C)维数组

  ZC:

 3.1、Pdf.P69  书.P38

  

    ZC:CV_32FC1:32位 浮点数 通道数为1 (C:channels)

 

 3.2、关于 3通道的 操作(HSV和RGB是3通道的吗??),见 Pdf.P82(书.P51), 3通道的 就是 H、S、V连续存放?R、G、B也是一样 连续存放?

  ZC:后面的讲解 有说 HSV是3通道的,及公式 3*x+c 。

  3.2.1、Pdf.P82(书.P51) CvMat.data(类型不定) 和 IplImage.imageData(类型固定uchar*) 的区别,操作时的注意点

 

4、掩码 / 模板  Pdf.P85(书.P54)

  ZC:暂时不理解 讲的是什么...

 

5、矩阵和图像 基本操作

  

  

  

  

  

 

6、in place  Pdf.P162(书.P131)

 看到这个“in place”不明白什么意思... 度娘了一下(本阶段bwg没了没有FQ),得到有以下资料:

  6.1、Python中inplace=True的理解-CSDN论坛.html()

  inplace参数的理解:         修改一个对象时:               inplace=True:不创建新的对象,直接对原始对象进行修改;               inplace=False:对数据进行修改,创建并返回新的对象承载其修改结果。

  6.2、in-place操作 - ZhangRui的博客 - CSDN博客.html()

  in-place操作,意思是所有的操作都是“就地”操作,不允许进行移动,或者称作 原位操作,即不允许使用临时变量。

  ZC:其实 在 Pdf.P162 中 作者也说明了这个意思:“简单无缩放变换的模糊不支持 in place 方式:输入图像与结果必须不同。(在8位和16位情况下,明显不能用 in place 方式;用32位图像时,也保持这一规定。)”

 

7、IPL_DEPTH_16S, CV_16S、IPL_DEPTH_32S, CV_32S  (Pdf.P162 书.P131)

 Pdf.P71(书.P40)

 Pdf.P80(书.P49) “表3-2:OpenCV图像类型”

  

   opencv中的数据类型 - dupuleng - 博客园.html()

 ZC:CV_16S、CV_32S 是用于 矩阵的(CvMat Pdf.P69  书.P38)

  Pdf.P72 书.P41:CV_32FC1

  Pdf.P78 书.P47:CV32FC2、CV32FC3

 ZC:IPL_DEPTH_16S、CV_16S、IPL_DEPTH_32S 是用于 IplImage的(Pdf.P80  书.P49)

 ZC:上面的我的观点:"CV_16S等 用于矩阵,IPL_DEPTH_16S等 用于IplImage",不知是否正确(先不管它),在 PDF.P69(书.P38)中 有说到:

 ZC:  "CV_<bit_depth>(S|U|F)C<number_of_channels>",从英文可见 "CV_16S"中的数字"16"就是“位深度”(在某些时候 是否就是能理解成“深度”?)
 ZC:  <<OpenCV3编程入门>>的相关内容 在PDF.P106(书.P89):“CV_[The number of bits per item][Signed or Unsigned][Type Prefix]C[The chanel number]  即:CV_[位数][带符号与否][类型前缀]C[通道数]”

// ZC: types_c.h 中可见 CV_8UC1 实际上就是 CV_8U的 #define CV_8U   0#define CV_8UC1 CV_MAKETYPE(CV_8U,1)

#define CV_CN_SHIFT 3

#define CV_DEPTH_MAX (1 << CV_CN_SHIFT)          // ZC: 0000 1000

#define CV_8U   0#define CV_MAT_DEPTH_MASK       (CV_DEPTH_MAX - 1)    // ZC: 0000 0111#define CV_MAT_DEPTH(flags)     ((flags) & CV_MAT_DEPTH_MASK)#define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))#define CV_8UC1 CV_MAKETYPE(CV_8U,1)

  ZC:精简下来是这个样子:

#define Z_CV_MAT_DEPTH(flags)     ((flags) & 0x7)    #define Z_CV_MAKETYPE(depth, cn) (Z_CV_MAT_DEPTH(depth) + (((cn)-1) << 3))

 

 

 矩阵数据的存取

 简单的方法

  Pdf.P72 书.P41 “例3-4:利用 CV_MAT_ELEM() 宏存取矩阵”

  Pdf.P73 书.P42 “例3-5:利用宏 CV_MAT_ELEM_PTR() 为矩阵设置一个数值”

 麻烦的方法

  Pdf.P73 书.P42 “例3-6:指针访问矩阵结构”

  Pdf.P74 书.P43 “例3-7:CvMat 和 IplImage 元素函数”

  Pdf.P75 书.P44 “例3-8:为 CvMat 或者 IplImage 元素设定值的函数”

 恰当的方法

  Pdf.P76 书.P45 “例3-9:累加一个三通道矩阵中的所有元素”

    ZC:循环访问 矩阵中所有元素

 

 Pdf.P81 书.P50 “访问图像数据”

 Pdf.P82 书.P51

  

 

8、Pdf.P159(书.P128)  平滑处理(模糊处理(blurring))

  频率很高的图像处理方法。最常见的是用来 减少图像上的 噪声 或者 失真。降低分辨率时平滑处理是很重要的(在本章的“图像金字塔”部分会详细介绍这一点)。

  ZC:这一节内容 整个都不太明白,网上也找不到 书上实验用的图片... 然后 到 Pdf.P163(书.P132)讲到 “高斯卷积和的sigma值” 的时候 就更笨不明白他在讲什么了...

9、Pdf.P165  图像形态学

10、

 

转载于:https://www.cnblogs.com/cppskill/p/10963336.html

你可能感兴趣的文章
adidas crazylight 2018 performance analysis review
查看>>
typeset shell 用法
查看>>
python 之 循环语句
查看>>
心得25--JDK新特性9-泛型1-加深介绍
查看>>
[转]ceph网络通信模块_以monitor模块为例
查看>>
HDOJ 1754 I Hate It(线段树基本操作)
查看>>
latex tree
查看>>
安装NVIDIA驱动时禁用自带nouveau驱动
查看>>
HDU-1255 覆盖的面积 (扫描线)
查看>>
css3学习01
查看>>
【USACO】 奶牛会展
查看>>
ActiveMQ笔记之点对点队列(Point-to-Point)
查看>>
继承和多态
查看>>
Dijkstra+计算几何 POJ 2502 Subway
查看>>
修复IE不能执行JS的方法
查看>>
程序员究竟该如何提高效率zt
查看>>
希尔排序法(缩小增量法)
查看>>
PHP编程基础学习(一)——数据类型
查看>>
MongoDB-JAVA-Driver 3.2版本常用代码全整理(2) - 查询
查看>>
NPOI处理Word文本中上下角标
查看>>