我下面的函数应该改变原始图片的颜色值,然后一旦这个过程完成,它应该用改变的颜色创建另一张图片。
void change(const cv::Mat &first_image, cv::Mat &new_image, const std::vector<std::vector<int> > &colors)
{
for (int i = 0; i < first_image.cols; i++) {
for (int j = 0; j < first_image.rows; j++) {
int blue = first_image.at<cv::Vec3b>(i,j)[0];
new_image.at<cv::Vec3b>(i,j)[2]= colors [2][blue];
int green = first_image.at<cv::Vec3b>(i,j)[1];
new_image.at<cv::Vec3b>(i,j)[1]= colors [1][green];
int red = first_image.at<cv::Vec3b>(i,j)[2];
new_image.at<cv::Vec3b>(i,j)[0]= colors [0][red];
}
}
}
当我使用命令 make 并运行整个代码时,我得到一个分段错误。我使用这个命令来运行代码
../../build/mv/task/mvtask1d pic.json
有人能告诉我我做错了什么吗?
先感谢您