我需要根据找到的边缘(使用给定的epsilon)裁剪图像
我遵循以下说明: Opencv c++ detect and crop white region on image
一次改变 - 我试图根据我从canny边缘探测器收到的边缘图像找到矩形:
<% @post.comments.each do |comment| %>
我遇到的问题是,当我到达#139列时,它崩溃了以下异常:
Microsoft C ++异常:cv ::内存位置的异常 0x000000EB35DEF170。
但是当我使用原始图像(而不是边缘图像)时,它按预期工作。
任何想法? 我想要的是根据图像的边缘裁剪而不是实际的图像
由于
答案 0 :(得分:1)
Canny结果是一个8位单通道二进制图像。您使用Vec3i
访问像素值;这意味着你假设图像是一个8位3通道图像,这是不正确的。尝试:
if(edges.at<uchar>(j,i) != 0)
{
nonBlackList.push_back(cv::Point(i,j));
}