分配像素值时出现分割错误
Segmentation fault while assigning a pixel value
以下代码会导致分段错误。
void sharpen(Mat& src, Mat& dst)
{
cout<<"nnFunction just callednn";
for (int i = 1; i < src.rows; i++)
{
for (int j = 1; j < src.cols; j++)
{
dst.at<uchar>(j, i) = 2*src.at<uchar>(j, i);
}
}
imshow("src",src);
imshow("dst",dst);
}
这有什么问题?
你交换行和列,请参阅此处 SO.使用dst.at<uchar>(i, j)=2*src.at<uchar>(i, j);
,注意(i, j)
的区别。
在Mat
类中它是(row, column)
,在点类中它是(columns, row)
。
还要检查矩阵的维数,因为您使用src
的大小来循环遍历src
和dst
,因此维数应该相等。进一步从 0
开始索引变量,因为在 C/C++ 中,您从 0
开始计数。
Dst 和 Source img 必须具有相同的大小。你可以通过做这样的事情来解决它
Mat sharpen(Mat src)
{
Mat dst = src.clone();
dst = 2*src;
imshow("src",src);
imshow("dst",dst);
return dst;
}
相关文章:
- C++映射分割错误(核心转储)
- 由cin中的字符串中未捕获空白引起的分割错误
- 删除映射和分割错误中的一个过去结束元素
- 在指向函数中读取变量时出现分割错误
- 在链表中的第 n 位插入显示分割错误
- 较高值 n 的分割错误(例如 n=999997)
- 尝试通过memcpy复制大尺寸浮点向量时的分割错误
- 分割错误:向量中的擦除功能
- 向量向量的分割错误
- 我在C++中编写了一个方法来打印树类的预序,但它显示了分割错误
- C ++分割错误,为什么使用"long long"我没有得到答案?
- 在尝试使用递归查找集合子集的总数时,我遇到了分割错误
- 分割错误 11:尝试使用 cin 输入 B[1] 时
- 集合布局上的 Qt 分割错误
- 高达20亿的筛子会产生分割错误
- 对向量使用推回函数时的分割错误
- 绘制精灵会导致分割错误
- 将矢量的整数内容打印为字符串会导致分割错误
- 分割错误:使用向量时为 11 c++
- 结构的分割错误错误