图像细线化的实现,网上拷贝的细线化代码,一堆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"就好啦

 

 

运行成功后细线化结果

 希望对大家有所帮助

 

posted @ 2021-01-07 14:30  _YeLL  阅读(220)  评论(0)    收藏  举报