Уверен, проблема в вызове доступа к облаку точек.Вам нужно использовать запятую вместо вторых скобок, и я также считаю (поправьте меня, если я ошибаюсь), что координаты должны быть в порядке столбцов и строк.* вместо вашего порядка [row] [col].
Я также изменил ваше облако на xyz, поскольку вы не добавляете в него какую-либо интенсивность (а просто проверяете изображение, чтобы определить наличие точки).
Наконец, убедитесь, что вы знаете порядок (строка против столбца), в котором точки хранятся в вашем трехмерном облаке, и убедитесь, что вы проходите таким же образом.
// An object to class PointCloud is created
pcl::PointCloud<pcl::PointXYZ> cloud;
// Image data from the camera is accessed as Matrix
cv::Mat image = rrlib::coviroa::AccessImageAsMat(in_img->at(0));
// Dimensions of the point cloud is sent as parameters to overloaded constuctor
cloud(image.cols, image.rows);
// The point cloud is expected to store the vector3f data in a 2D format
for(int i = 0; i <= image.rows; ++i)
for(int j = 0; j <= image.cols; ++j)
{
if( image.at<uchar>(i,j) == 255)
{
// Error shown here
cloud.points[j,i].getVector3fMap() = &points[num_valid_points];
num_valid_points++;
}
}