《学习OpenCV(中文版)》勘误
Wikipedia,自由的百科全书
请在下面写下本书的翻译错误,谢谢!--Shiqi yu 17:26 2009年9月16日 (CST)
提交错误较多的读者有可能得到赠书。 具体请看《学习OpenCV》赠书活动--Shiqi yu 11:29 2010年1月29日 (CST)
36页

表3-1标题:"points, size, rectangles 和calar三元组的机构"中的“calar”应为“scalar”(by frankyhit, franky.sui@gmail.com)
38页
例3-1上面一段倒数第3行:“可通过调用函数vGetSize(CvMat*)”应该为:“可通过调用函数cvGetSize(CvMat*)”。(by FlyZhy)
460页
(1) p460 第五行公式中的第一个P应该改为小写的p
(2) p460 基础矩阵数学这一部分中的第一个段落中有这么一句话“用p(像素坐标)来代替q” 应该改为“用q(像素坐标)来代替p”
(3) p460 “因此关于E的等式就变成:”下面的公式中应该是右摄相机投影矩阵的逆矩阵的转置。所以应该将右摄相机投影矩阵的上标改为“-T”而非“-1”.该公式的其他地方正确 同样下面的F矩阵也应该如此更改。 ( by Spring .butterfly0815@sina.com )
438页
438页 练习题第一题 :应该是y=fy*(Y/Z)+Cy; 原文将其写成了y-fy*(Y/Z)+Cy;( by Spring .Email:butterfly0815@sina.com )
43页
倒数第5行:“cvGet*D中有四个函数返回的是整型的”,应该为:“cvGet*D中有四个函数返回的是double型的”。(by FlyZhy)
46页
第6行开头:“...指针解引用的时候,”应改为:“...指针被引用的时候,”(xmchenzb)
49页
第3行:"nchannals"应该为"nChannels" (by deltat)
50页
第4行"冗于"应该为"冗余" (by deltat)
51页
16行 "重要度别" 应是 "重要区别" (chenxinqiu50)
51页
18行 “我们已经知道是种类型的” 改为 “我们已经知道这种类型的” (loop.k)
51页
21行 “必须对偏移并进行调整”,“并”字应去掉 (lcykk)
52页
10行 “用imageROI来增加某范围的像素”有歧义, 应该为“用imageROI来增加某范围的像素值” (lcykk)
52页
例3-12中:
cvSetImage ROI(src, cvRect(x,y,width,height));
应为
cvSetImageROI(src, cvRect(x,y,width,height));
(by Duanlin)
54页
表3-3 缺60页 cvAnd, cvAnds 缺85页 CVScale(chenxinqiu50)
英文原书中的表格中也缺少,我已经提交勘误到英文原书。Shiqi yu 14:08 2009年12月25日 (CST)
56页
第二行 "cvInvert 求矩阵的转置" 应为"cvInvert 求矩阵的逆" (by deltat)
倒数12行 "多通道所组" 应为 "多通道数组" (loop.k)
57页
57页 4,9,14行,const 应该改成const CvArr* (by Zxyang2008)
因该改为 CvArr*而不是const CvArr*。不能用静态的。(by Easycode)
59 页
59 页 23 行 ,cvSetImage ROI 应该改 成cvSetImageROI.(by xssh123)
在58页和59页中出现的alpha、beta、gamma(代码中的变量或数学变量)字体不一致。(by FlyZhy)
70页
cvDiv()函数缺少 const CvArr* mask 参数,但在函数说明中有此参数介绍? (xmchenzb)
73页
cvGetCols()函数的工作原理与cvGetCols完全一致...
应为
cvGetCols()函数的工作原理与cvGetCol()完全一致...
(by hbclc)
78页
cvMaxs()函数缺少 const CvArr* mask 参数,但在函数说明中有此参数介绍? (xmchenzb)
79页
正文倒数第6行:cvMaxS(),应改为:cvMinS()(xmchenzb)
cvMinS()函数缺少 const CvArr* mask 参数,但在函数说明中有此参数介绍? (xmchenzb)
80页
cvMul()函数缺少 const CvArr* mask 参数,但在函数说明中有此参数介绍? (xmchenzb)
91页
倒数第二行的CvPoint(int x,int ,y)应该是cvPoint(int x,int ,y),后者是构造函数。(shanleo1986)
99页
3行 “从磁盘中调出cfg.xml文件” 应是 “向磁盘中写入cfg.xml文件” (chenxinqiu50)
倒数第14行:cvWrite()编写处色彩转换矩阵,应改为:cvWrite()编写出色彩转换矩阵 (xmchenzb)
99页
倒数18行:“cvWritelnt()向结构中写入数据” 应是“cvWriteInt()向结构中写入数据” (shanleo1986)
104页
练习第5题第2句话,英文原版为:“Create a 210-by-210 single-channel byte image and zero it.”应该翻译为:“创建一个210X210的单通道字节图像并将其归0”,中文版中少了“字节”二字。(by FlyZhy)
106页
第2段第2句话:“OpenCV中的HighGUI可以分为3部分:硬件相关部分、文件部分以及图形用户界面部分”以及这句的注释中都使用了“文件部分”的说法,应该为:“文件系统部分”。(by FlyZhy)
107页
“创建窗口”小节第一行:“我们使用cvNameWindow()” 应为 “我们使用cvNamedWindow()”.(by shanleo1986@163.com)
115页
115页 函数draw_box里面的CvRect rect应该改成CvRect box!(by xssh123)
119页
第1行:“没有显示提供” 应为 “没有显式提供”。(by Shiqi yu)
119页
2行 “两个取的滑动条” 应是 “两个状态的滑动条”(chenxinqiu50)
122页
5行 “小敲门” 应是 “小窍门”(chenxinqiu50)
125页
最后一段第2行:“图像必须是8位的单通过或者3个通道”应该为:“图像必须是8位的单通道或者3个通道”。(by FlyZhy)
第12行,"CvReleaseVideoWriter"应该为"cvReleaseVideoWriter" (by deltat)
129页
表5-1中表头部分第3列应该为“in place支持”。(by FlyZhy)
表5-1中第一行(CV_BLUR)的“简要说明”部分最后一个数学表达式:“1/(param1 param2)”应该为:“1/(param1Xparam2)”。(by FlyZhy)
137页
6行 lim 应为 min(by Enjoysoft)
140页
正文最后两行和141页第一行(图5-10和图5-11之间的正文)与前一段重复,应删除。(by chenxinqiu50 & xmchenzb)
147页
倒数第二行:"大两倍的图像" 应为 “大两个像素的图像”。(by whwhyy@china-pub.com)
147页
图5-19 标题中的 "hiDiff” 应是 "upDiff" (chenxinqiu50)
148页
倒2行 "lowDiff" 应是loDiff (chenxinqiu50)
149页
图5-20 应是右上方 右下方 (chenxinqiu50)
151页
8行和16行,IPL_GAUSSIAN_5x5 应是 CV_GAUSSIAN_5x5 (chenxinqiu50)
152页
图5-21 9个图片中中间一行最右面图,旁边的箭头方向指反了(by Enjoysoft)
157页
图5-23 其“后” 应是其上 (chenxinqiu50)
161页
图5-24图中“二进制阈值”应是全局阈值二值图像 “ 自适应二进制阈值”应是 自适应阈值二值图像(chenxinqiu50)
171页
倒数第二段最后一行 “将低分类器识别的性能” 应为 “降低分类器识别的性能”(loop.k)
171页
图6-5 CV_SHARR,应为 CV_SCHARR(chenxinqiu50)
178页
图6-11标题中的 “参数1=”和“参数2=” 应分别是 “param1=”和“param2=” (chenxinqiu50)
184页
表6-1 标题应为cvRemap,cvWarpAffine此时还没出现过 (Enjoysoft)
188页
中间的两个公式重复,上面一个应该去掉 (Enjoysoft)
192页
倒1行“ 标志”应是参数(OpenCV教程是参数)(chenxinqiu50)
193页
文字部分第六行 "分配2x3数组" 应为 "分配一个3x3数组" (loop.k)
194页
例程6-3源代码最后一行的“}”是多余的,应去掉(pobenliu)
199页
3行,图-17, “对数极变换” 应是 对数极坐标变换 “例6-17”应是图6-17(chenxinqiu50)
210页
图6-21标题中 “ 参数1=50,参数2=200” 应是 “ param1=50,param2=200” (chenxinqiu50)
211页
6行 “指掇” 应为 "拍摄" (loop.k)
212页
图6-23 图6-24 两图中表述不一致 图6-23右图? (chenxinqiu50)
212页
图6-23左图标应改为:累积高斯分布函数,右图标应改为:高斯分布函数(xmchenzb)
216页
第1行:“看到的对字用直方图” 应为 “看到的物体用直方图” (chenxinqiu50)
219页
倒3,4行"rangs" 应是 "ranges" (有两处) (chenxinqiu50)
220页
1 行 布尔类型变量uniform应是整型变量(219页倒20行, OpenCV教程303页 归一化标志 ,整型变量)(chenxinqiu50)
220页
2,3行 "rangs" 应是 "ranges" (chenxinqiu50)
225页
最后一个公式,多了两个逗号,并且公式分母中的H2平方的前面缺少了一个sigma.(by enjoysoft)
227页
第2段,出现了“intersection方法”、“chi-square方法”,之前英语术语已经翻译,而且图7-4已有翻译,建议此处翻译为“直方图相交方法”和“卡方方法”.(by enjoysoft)
228页
27行,cvNormalizeHist函数里面的hist[i]无法编译,应该为hist,经过原书实例,没有此行.(by xssh123)
240页
第1/2/3公式都少了T(by frankyhit, franky.sui@gmail.com) 第4公式第一个T应为T'(by enjoysoft) 倒数第二段不知道是不是原书的错误,“归一化的系数都如下”,实际上,CV_TM_CCOEFF_NORMED的分母并不是Z(x,y),应该另定义一个Z'(x,y)(by enjoysoft)
241页
第2段 "至于函数cvCalcBackProjectionPatch()"不通,应为"和函数cvCalcBackProjectionPatch()一样" (enjoysoft)
242页
21行 "cvMatch Template" 应是 "cvMatchTemplate" (chenxinqiu50)
249页
第3段,"flags变量"应为"seq_flags变量",参看上面的函数声明 (enjoysoft)
250页
最后一行,"cvClearMemStore"应该为"cvClearMemStorage" (by deltat)
260页
注意部分 "通过图8-1" 应为 "通过图8-2" (loop.k)
267页
正文倒数第10行 "它不像乍看上去" 应为 "它不像看上去" (loop.k)
倒数第8行"此变量可以被设置为便利轮廓的最大深度"中"便利"应该为"遍历" (by deltat)
269页
倒数第12行 ,函数cvCreateTrackbar函数中少参数,应该加入bar中最大值,否则无法编译.(by xssh123)
272页
倒数第11行 ,"如果想了这个参数..."应该为"如果想了解这个参数..."
275页
倒数第7行 ,"CvBoundingRech"应该为"CvBoundingRect" (by deltat)
276页
正文第3行 ,"CvBoundingReck"应该为"CvBoundingRect" (by deltat)
倒数第10行 "图8-7: CvRect只能表示一个方正的正方形,但CvBox2D可以表示任何倾斜度的正方形"应为 "图8-7: CvRect只能表示一个方正的长方形,但CvBox2D可以表示任何倾斜度的长方形" (by deltat)
279页
第6行"并且演示了如果..."应该为""并且演示了如何..." (by deltat)
第11行"比较两个个..."应该为""比较两个..." (by deltat)
页底 cvContoursMoments并不存在,应为cvContourMoments,就是cvMoments的一个宏 (by enjoysoft)
第14行的公式
mp,q 中的p,q 应为下标
(by User:Duanlin)
280页
第11行、第20行cvContoursMoments都应为cvContourMoments (by deltat)
倒数第1行,cvDrawContour应该为"cvDrawContours" (by deltat)
281页
倒数第七行 "中心距"应为"中心矩" (by deltat)
282页
第1行、第5行 "中心距"应为"中心矩" (by deltat)
283页
第16行 "cvMatchShape"应为"cvMatchShapes" (by deltat)
284页
倒2行, "树节电" 应是 "树节点" (chenxinqiu50)
287页
倒数6行"returnpoints" 应是 "return_points" (chenxinqiu50)
289页
图8-13 应是a上图 b上图(chenxinqiu50)
297页
2行 CV_NEXT_LINT_POINT()函数?(chenxinqiu50)
299页
正文第3行“frameTeim1”应改为“frameTime1”。(by shanleo1986)
306页
void cvAcc(
const Cvrr *image, ...);的Cvrr应改为CvArr。(by shanleo1986)
308页
倒数4行"blob" 应是blobs (chenxinqiu50)
311页
第4行“跟踪在mumEries”改为“跟踪在numEries”。(by shanleo1986)
311页
正数18行-19行: “对于每个通道,最大值和最小值就是codebook的分界线”中的最大值应改为“max”,最小值应为“min”
20行:“如果一个像素值的每个通道”==>“对于一个新的像素,如果各通道”
21-22行:“距离上次更新和陈旧的时间用于删除过程中学习的很少使用的码本条目”==》“时间参数t_last_update和stale用于删除在学习过程中创建但很少使用的码本元素”
倒数第一段,即“背景学习”标题下 该段第一句应为“我们为每个像素分配一个有一系列码元组成的码本” 第二句应为“我们需要一个与正在学习的图像像素数目等长的码本阵列”
(lymarzzh001@sina.com)
331页
第二段有个英文"mean-shoft"应为“mean-shift”(enjoysoft )
335页
第二段有个英文"mean-shoft"应为“mean-shift”(enjoysoft )
336页
cvInitSubdiv Delaunay2D()改为 cvInitSubdivDelaunay2D(),是一个函数,中间没有空格。(by shanleo1986)
337页
cvCalcSubdiv Voronoi2D()改为 cvCalcSubdivVoronoi2D(),是一个函数,中间没有空格。(by shanleo1986)
355页
倒数第5行,"CV_TERMCRIT_ITER"类型名重复,第二个参数类型应为"CV_TERMCRIT_EPS". ( Yishi Guo ) 第1行,“点集”应为“点积”
355页
14行“是由cvGoodFeatures()得到的位置坐标”改为“是由cvGoodFeaturesToTrack()得到的位置坐标”。(by shanleo1986)
358页
图10-4的解释最后一句"(图由Michael Black[Black82]提供)",但在后面的参考文献中并无Black82,貌似应为Black92. ( Yishi Guo )
361页
倒数第3行,"建立邻域像素的系统方程"应为"建立邻域像素的方程组" 此处英文原文为"...to set up a system of equations.",这里的"system of equation"应为"方程组"的意思.(Yishi Guo)
363 页
倒数7行"winSize"应是win_Size(chenxinqiu50)
364页
倒数7行,"featuresB 与featuresB 相似" 应是 "featuresB与featuresA 相似" (chenxinqiu50)
364页
倒数第6行,"win_size"在此应为"winSize",和上文函数中的参数名对应.(Yishi Guo)
365页
倒数第11行,“数组B”个人认为应该改为“数组featuresB”。因为参数中给的是featuresB。(bu shanleo1986,shanleo1986@163.com)
370页
第一部分倒数第3行,"什么是Lagrange乘子?",其实翻译成"什么是拉格朗日乘子?"更好.( Yishi Guo )
371页
倒数第5行,"camshaift"应为"camshift" (by deltat)
374页
英文版中第340页的倒数第二段部分内容未翻译.( Yishi Guo )
384页
正文倒数第5行最后一句:"这样就大大地简化了这个方法的计算机实现"翻译有误. 英文版原文为:"This greatly simplifies the computational implications of this method.",此处的"implications"并不是"实现"的意思而是"含义"的意思."实现"应为"implement". ( Yishi Guo )
390页
此页少一个注释.即英文版第356页的第一个注释. ( Yishi Guo )
391页
H矩阵应该为:
H = [1 0 0 0
0 1 0 0](gawing)
394页
例10-2代码的"#define phi2xy(mat)"部分中, "/"斜杠应为"\"反斜杠. ( Yishi Guo )
395页
页面下方的代码第6行多空格,cvR andSetRange应该为 cvRandSetRange. ( frostmourn )
408页
页图11-2后面的注释"q=(z,y,f)"是否错误?是否应为“q=(x,y,f)”?我看了下英文电子文档也是写"q=(z,y,f)"!(fenggee008)
414页
正文最后一个公式,少等号“=”(pobenliu)
415页
正文前两个公式,少等号“=” (pobenliu)
最后一行,“R = Rz(θ), Ry(φ), Rx(ψ)”两个逗号“,”应为乘号“×”。参考P414正文最后一行“……总的旋转矩阵R是三个矩阵 Rz(θ), Ry(φ)和Rx(ψ)的乘积……” (pobenliu)
416页
正文第一行“ RRT=I”格式有误,T为第二个R的上标 (pobneliu)
正为第三行“第一个坐标是原点”应为“第一个坐标系原点” (pobenliu)
421页
正文第四行“通过乘以WQ,得到摄像机矩阵M”翻译有误,原文为“the action of the camera matrix M is multiplied by WQ”,翻译为“将摄像机的移动矩阵M与WQ相乘” (pobenliu)
正文第九行“(即R=[r1,r2,r3]”,少了一个匹配的“)”,也即“(即R=[r1,r2,r3])”(pobenliu)
428页
正文倒数第五行“k3”,3应为k的缀脚,格式有误(pobenliu)
438页
倒数10,12行"jacobin","jabobian", 皆应是 "jacobian" (chenxinqiu50)
438页
倒数9行 "cvFindExtrinsicCameraParameters2() " 应是 "cvFindExtrinsicCameraParams2()" (chenxinqiu50)
453页
脚注2的最后一个公式,Z=fT... 其中T不应为下标, (enjoysoft)
458页
注释2行"H定义"?(chenxinqiu50)
459页
倒数第二个公式,S=【...】缺少一个等号 (enjoysoft) 正文第13行,RT=R-1,T应为上标。 (enjoysoft)
464页
正文第7行,“极线方程”应为“ax+by+c=0”。 (enjoysoft)
465页
第1个公式,Rl括号外应有一个转置符号 (enjoysoft)
第1个公式中的T是转置符号
466页
倒数9行 "distCoeffs5" 应是 "distCoeffs2" (chenxinqiu50)
468页
正文第7行:“但是由于可选择的前向平行平面个数是有限的,...”中,‘有限的’一词翻译错误,英文原文是‘infinite’,是“无限”的意思。(goode)
471页
倒数第2个公式缺少等号 (enjoysoft)
472页
前2个公式缺少等号 (enjoysoft)
476页
“d=xl-xr(cxleft - cxright)” 应为 “d=xl-xr-(cxleft - cxright)” (enjoysoft)
496页
倒数7,8,19,20,21,23行"cvRandint","cvRandReal",应是cvReadint,cvReadReal(chenxinqiu50)
497页
倒数10行cvLine()7个参数,91页cvLine()6个参数(chenxinqiu50)
老版本OpenCV只有6个参数,新版本有7个参数 (Shiqi yu 15:31 2009年12月25日 (CST))
502页
倒数第2行,“左侧自节点”==》“左侧子节点”(by lymarzzh@OpenCV China)
504页
续表的第1行,“递归”==》“回归”(by lymarzzh@OpenCV China)
521页
注释:N行 替换为 N列,K列 替换为 K行。(by YenTe)
514页
第二段:
1行:"返回的参数 responses 可以是类别标签" 应为 "参数 responses 可以是类别标签"
2行:"返回值常常是一个" ==> "responses 参数通常是一个"
4行: "返回值有两种类型" ==> "responses 参数有两种类型"
本段下面的部分翻译也比较混乱,建议参考英文原版。(by Adintr)
524页
第9行,“特征之前相互独立”==》“特征之间相互独立”(by lymarzzh@OpenCV China)
525页
“物体”==》“目标”似乎更合适(by lymarzzh@OpenCV China)
530页
最后一段“训练决策树的方法如下,... 使用)。” 替换为:
“用来训练决策树的方法模板如下。有两种方法:第一个用于决策树的直接使用;第二个用于整体学习(如boosting)或随机森林(如随机树)。”
(by lymarzzh@OpenCV China)
537页
正文第6行,
“有一个叫统计提升(meta-learning)的学习算法(由” 改为 “有一种称作统计提升(statistical boosting)的元学习(meta-learning)算法(由”
(by lymarzzh@OpenCV China)
537页
boosting 和随机数可以获得很好的性能 ==> boosting 和随机树可以获得很好的性能(by adintr)
538页
第6行,“外围数据”==》“异常数据” (by lymarzzh@OpenCV China)
538页
正文倒数 第4 行: “1/m,i=1,...,m ”中 的m,应该 为M
正文 倒数第1 行 中的 "m" 应为 "M"
(by lymarzzh@OpenCV China)
538页
正文倒数第5行: “更加关注与前面的分类器...”中的'与‘,应该为’于‘ (by caotangwa)
539页
正文第2行: “αt=log...”应该为“αt=1/2log..." (by caotangwa)
540页
正文倒数7行,"非物体",“物体”==>“非目标”,“目标” (by lymarzzh@OpenCV China)
540页
正文倒数第1行,文中”CvBooatTree的声明“应该为“CvBoostTree的声明”
(by caotangwa@OpenCV China)
543 页
正文倒数 第2 行, “OpenCV包含随机森林(random trees)类”==》“OpenCV包含随机树(random trees)类”
正 文 倒数第3行Random Trees 应该 翻译 为 “ 随机树 ”
(by lymarzzh@OpenCV China)
544页
正文第2自然段的倒数第三行,“OOB错误”==>"OOB误差" (by lymarzzh@OpenCV China)
551页
正文第二段:第一句话“...每个节点中中...",‘中’重复了,应该删去。(by caotangwa@OpenCV China)
553页
正文第二段:第一句话“如前所述....的物体"重复了,整句应该删去。 (by caotangwa@OpenCV China)
560页
正文11行,“分等级的类脑网络的最新工作”==》“可进行概率传播的分层类脑网络的最新工作”
(by lymarzzh@OpenCV China)
560页
正文16行,“高纬空间”==》“高维空间”
(by lymarzzh@OpenCV China)


