c++ - 细化会破坏边界处的线条
问题描述
我正在通过使用骨架对线条图进行细化。我这样做如下:
cv::Mat element = getStructuringElement(cv::MORPH_RECT, cv::Size(9, 9));
cv::morphologyEx(src, src, cv::MORPH_CLOSE, element);
cv::ximgproc::thinning( src, src, 0 );
但是,如果您查看线条的左下角和右下角,则只有一个像素超出边缘。当我应用细化时,最终看起来像这样:
我已经圈出了这个问题。如您所见,由于某种原因,边框上有一条“线”像素。为什么会这样?在骨架化之后,我仍然只希望线像以前一样离开边界,而不是像它那样“挤压”成一条线
解决方案
推荐阅读
- python - 为什么我在尝试使用 imapclient 时收到 TypeError?
- node.js - 如何将 google gmail api 身份验证从客户端共享到节点服务器
- geoserver - 地理服务器点样式 - 将所有记录中特定字段的值添加到标签中
- python-3.x - 当我单击“运行测试”时,为什么 pytest 会运行完整代码而不是测试?
- python - yfinance:选择一小时间隔时看不到一天中的时间
- webpack - Webpack 5 模块联合:使用身份验证访问远程模块
- reactjs - Grapqhql 数据在解构时是“未定义的”,尽管数据在那里
- r - 在R中将日期时间转换为三个字母的月份和年份
- python - Airflow:插件被 1.10.14 和 Python 3.8 破坏
- python - “TypeError:列表索引必须是整数或切片,而不是元组”-如何解决