#include <cv.h>
#include <highgui.h>
/
/ 击打式细化图像
/ binaryImage - 需要细化的图像,必须是二值图像。灰度图也可以蒙混过关,但是没有用。
/ refColor - 关键颜色,也就是需要细化的颜色。0,黑色或者是 255白色。
/ 返回值:返回细化后的图像,细化的结果需要自己释放去。
IplImage* HitRefinementImage(const IplImage* binaryImage, const unsigned char refColor = 0)
{
//必须是一个通道的,也就是必须是二值图,当然也你可以提供灰度图,可想而知得不到什么有用的结果的。
assert(binaryImage->nChannels == 1);
//击中表。循环判断是否有击中其中的项目。
static const unsigned char hitTable[256] = {
0,0,0,0,0,0,0,1, 0,0,1,1,0,0,1,1,
0,0,0,0,0,0,0,0, 0,0,1,1,1,0,1,1,
0,0,0,0,0,0,0,0, 1,0,0,0,1,0,1,1,
0,0,0,0,0,0,0,0, 1,0,1,1,1,0,1,1,
0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0, 1,0,0,0,1,0,1,1,
1,0,0,0,0,0,0,0, 1,0,1,1,1,0,1,1,
0,0,1,1,0,0,1,1, 0,0,0,1,0,0,1,1,
0,0,0,0,0,0,0,0, 0,0,0,1,0,0,1,1,
1,1,0,1,0,0,0,1, 0,0,0,0,0,0,0,0,
1,1,0,1,0,0,0,1, 1,1,0,0,1,0,0,0,
0,1,1,1,0,
击中式细化图像,提取图像骨架。
最新推荐文章于 2023-04-22 17:15:34 发布
本文深入探讨了图像细化过程,重点介绍了如何通过算法精确地提取图像的骨架,为图像处理和分析提供了关键步骤。内容包括不同细化方法的比较、应用场景及其实现技巧。
摘要由CSDN通过智能技术生成