我目前正在努力将Python程序翻译成C ++我已将98%以上的程序转换为C ++,但是有一行我坚持使用。我目前正在使用OpenCV,我相信它与此有关。 Python Line:
for box in self.Boxes[:]:
Cropped_Box = image.crop(box)
mean = ImageStat.Stat(Cropped_Box).mean
C ++专栏:
for(int a = 0; a < 24; a++)
Average_reds = cv::mean(roi[a])
Average_reds是cv::Scalar
,我试图从LED指示灯板读取gps时间。我怎么不知道我是否在C ++中使用与Python中使用的相同的mean
函数。
此外,Cropped_Box
和roi[a]
当然是Mat
类型图像的裁剪区域。
答案 0 :(得分:0)
答案是是,cv::mean()
执行与ImageStat.mean
相同的操作。它们都执行像素值的通道平均值。
略有不同:ImageStat.mean
会返回每个频道的平均值列表。因此,三通道图像将返回三元素列表。 cv::mean()
始终返回cv::Scalar
,其中包含四个元素。这意味着如果图像少于四个通道,则只有cv::Scalar
的前N个元素(其中N是图像通道的数量)将具有有意义的数字。