使用形态学操作实现边界提取的思路:
1.首先对图像A进行腐蚀,
2.之后再使用A减去腐蚀后的结果即是提取到的边界
opencv中代码如下:
#include <iostream>
#include <opencv2/opencv.hpp>
int main() {
cv::Mat src=cv::imread("../1.jpg");
cv::imshow("input",src);
cv::Mat element=cv::getStructuringElement(cv::MORPH_RECT,cv::Size(3,3),cv::Point(-1,-1));
cv::Mat dst;
cv::erode(src,dst,element);
cv::imshow("erode",dst);
cv::absdiff(src,dst,dst);
cv::imshow("result",dst);
cv::waitKey(0);
return 0;
}
原图 腐蚀之后的图像
提取结果