关于Opencv的矩阵和图像(cvSetRealND) opencv 矩阵乘法

最近在用MFC+OPENCV写课程实验的时候,发现用cvSetReal2D对已经创建了的矩阵元素赋值,总会导致程序异常。已经创建的矩阵即用cvCreateMat函数设置成单通道的浮点型。开始以为是由于我指定矩阵元素index是浮点型的缘故,可是无论是强制转成int型还是直接给定一个整形常数例如cvSetReal2D(arr,100, 100,0),依然会有程序异常中止。
由于在创建了这个矩阵之后,我在这个矩阵上用过opencv的绘图函数,画过cvLine,所以干脆试了下不指定index下矩阵元素的值,而是直接在index下用cvCircle画实心圆,结果成功了。
然后我想了很久,猜想也许这和之前使用过cvSet或者cvLine函数有关,因为用这些函数的时候,是cvScalar数据类型,而再次指定矩阵元素值的时候,cvSetReal2D用的却是double类型,这也解释了为什么用cvCircle函数不会发生异常,因为cvCircle画的颜色也是cvScalar类型
故我猜测在出错的那个位置,如果使用的不是cvSetReal2D而是cvSet2D,也许就不会出错了,因为cvSet2D同样是采用的cvScalar类型。但是在书中指出,cvSetReal2D是用于单通道的矩阵元素赋值,cvSet2D是RGB通道的赋值,创建的矩阵是32位浮点单通道,为什么用cvSetReal2D会失败呢?也许原因在于使用了cvLine函数以后,虽然矩阵依然是单通道,但是数据类型被变换成了cvScalar。
要搞清楚矩阵中,字节和位数的排列是一件很复杂的事情,甚至于书中都没有提到,简单的来说,如果矩阵初始化的时候,用的cvSet函数,那后面最好都用cvSetND赋值;如果初始化用的是cvZero,那后面用cvSetReal也可以
关于Opencv的矩阵和图像(cvSetRealND) opencv 矩阵乘法

  

爱华网本文地址 » http://www.413yy.cn/a/25101014/218440.html

更多阅读

《伯牙绝弦》导学资源1:关于友情的古诗和诗句

关于友情的古诗1、《送别》【唐】王维下马饮君酒,问君何所之。君言不得意,归卧南山陲。但去莫复问,白云无尽时。2、《渭城曲》【唐】王维又名《送元二使安西》渭城朝雨浥轻尘,客舍青青柳色新。劝君更尽一杯酒,西出阳关无故人。3、《送

关于巴黎公社的特征和失败的根本原因应试版 巴黎公社运动

☆关于巴黎公社的特征和失败的根本原因:(一)特征:1.巴黎公社是自19世纪30年代以来国际工人运动的最高峰,也是这一阶段工人运动的一个总结。公社是唯一夺取全市政权,建立起工人政府并维持了两个月以上的工人起义。2.巴黎公社本质上是工人阶

关于秋天的音乐和心情 关于秋天的心情

台风过境,气温骤降抬头看看今晚的天空,原来天空竟已那么高,晚风竟已那么凉。于是知道,已然夏末秋至。心里突然浮起很多关于秋天的音乐,今天在这里贴出一些,大家一起分享。(应网友雁渡寒潭的提议,新加歌曲两首:叶倩文-秋去秋来,万芳-多事的秋,

关于Opencv的矩阵和图像(cvSetRealND) opencv 矩阵乘法

最近在用MFC+OPENCV写课程实验的时候,发现用cvSetReal2D对已经创建了的矩阵元素赋值,总会导致程序异常。已经创建的矩阵即用cvCreateMat函数设置成单通道的浮点型。开始以为是由于我指定矩阵元素index是浮点型的缘故,可是无论是强制转

关于孔子的资料和名言 孔子关于礼仪的名言

这个星期,同学们学习了《孔子拜师》这篇课文。学生们很感兴趣,我再孩子们补充一些关于孔子的资料和名言。孔子(公元前551--公元前479) ,名丘 ,字仲尼,春秋末期鲁国陬(zōu)邑(今山东曲阜市东南)人。  他是我国古代著名的思想家、政治

声明:《关于Opencv的矩阵和图像(cvSetRealND) opencv 矩阵乘法》为网友柚子分享!如侵犯到您的合法权益请联系我们删除