【发布时间】:2013-05-09 22:15:54
【问题描述】:
我有一个关于代码和平的问题。
...............
cv::Mat image;
image = cv::imread(filename.c_str(), CV_LOAD_IMAGE_COLOR);
if (image.empty()) {
std::cerr << "Couldn't open file: " << filename << std::endl;
exit(1);
}
cv::cvtColor(image, imageRGBA, CV_BGR2RGBA);
imageGrey.create(image.rows, image.cols, CV_8UC1);
*inputImage = (uchar4 *)imageRGBA.ptr<unsigned char>(0);
*greyImage = imageGrey.ptr<unsigned char>(0);
据我了解,我们创建了一个 openCV mat 对象。将图像读入其中。但是为什么我们使用 filename.c_str()?而不仅仅是文件名?为什么我们要从 BGR 转换为 RGBA?
cv::cvtColor(image, imageRGBA, CV_BGR2RGBA); 我在文档中读到 imread 将图像读取为 RGB 而不是 BGR。
最让我们困惑的是这部分:
*inputImage = (uchar4 *)imageRGBA.ptr<unsigned char>(0);
*greyImage = imageGrey.ptr<unsigned char>(0);
这里发生了什么?为什么我们需要所有这些演员表? 我知道这是很多问题,但我真的很想知道这里发生了什么。)
【问题讨论】:
-
...你从哪里得到这个代码 sn-p?
-
从这里:udacity.com/course/cs344。此代码包含在项目中作为参考。我想了解一下,我没有openCV的经验。
-
这和 cuda 完全没有关系吧?