c++编程实现求目标的骨架
时间: 2024-03-03 16:49:32 浏览: 19
求目标的骨架,通常可以使用骨架化算法来实现。下面是一个简单的 C++ 实现:
```
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读取原始图像
Mat src = imread("target.jpg");
// 转换为灰度图像
Mat gray;
cvtColor(src, gray, COLOR_BGR2GRAY);
// 二值化
Mat binary;
threshold(gray, binary, 0, 255, THRESH_BINARY_INV | THRESH_OTSU);
// 进行形态学操作,得到骨架
Mat skel(binary.size(), CV_8UC1, Scalar(0));
Mat temp;
Mat eroded;
do {
erode(binary, eroded, Mat());
dilate(eroded, temp, Mat());
subtract(binary, temp, temp);
bitwise_or(skel, temp, skel);
eroded.copyTo(binary);
} while (countNonZero(binary) != 0);
// 显示结果
imshow("Skeleton", skel);
waitKey(0);
return 0;
}
```
这个程序使用 OpenCV 库实现了骨架化算法,可以读取一张图像,求出该图像的骨架并显示出来。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)