图像细线化的实现,网上拷贝的细线化代码,一堆CV_IMAGE_ELEM飘红和报错等一系列问题
在网上找到了细线化的代码,但是却没法运行,网上的方法也没有找到正确的方法,记录下自己修正的过程。主要遇到了一下几个问题:
1.CV_IMAGE_ELEM飘红
查找解决方案都是说要#define一个CV_IMAGE_ELEM,其实是byte作为类型不能直接传过去,要在程序开头typedef一下就可以啦
1 typedef unsigned char byte;
2.Error:Bad argument (Array should be CvMat or IplImage) in cvGetSize, file F:\opencv-3.4.5\modules\core\src\array.cpp, line 1246
这是cvGetSize这个函数的问题,只要修改一下就好啦
将 pDst = cvCreateImage(cvGetSize(pSrc), pSrc->depth, pSrc->nChannels); ×
改为 pDst = cvCreateImage(cvSize(pSrc->width, pSrc->height), pSrc->depth, pSrc->nChannels); √
3.#include "cxcore.h"引用飘红问题
没有引用正确,cxcore.h的地址不正确,我的是修改为#include "opencv/cxcore.h"就好啦
运行成功后细线化结果↓↓
希望对大家有所帮助