先挂上我写的代码:

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <highgui.h>
#include <cv.h>
#include <opencv2/legacy/legacy.hpp> using namespace std;
using namespace cv; void f(IplImage *src, IplImage *dst)
{
CvMemStorage *storage = cvCreateMemStorage();
CvSeq *comp = NULL; cvPyrSegmentation(src, dst, storage, &comp, , , );
int n_comp = comp->total; for (int i = ; i < n_comp; i++)
{
CvConnectedComp *cc = (CvConnectedComp *)cvGetSeqElem(comp, i); }
cvReleaseMemStorage(&storage); } int main(int argc, char *argv[])
{
cvNamedWindow("ch5_1");
IplImage *src = cvLoadImage("F:/BaiduNetdiskDownload/dog1.bmp");
if (!src)
{
printf("Couldn't seem to Open the image\n");
return -;
}
IplImage *dst = cvCreateImage(
cvSize(src->width, src->height),
src->depth,
src->nChannels
);
//printf("%d\n",src->nChannels);//查看当前图像的通道数
f(src, dst);
//show the image in the named window
cvShowImage("ch5_1", dst);
while ()
{
if (cvWaitKey() == )break;
} cvDestroyWindow("ch5_1");
cvReleaseImage(&src);
cvReleaseImage(&dst); return ;
}

问题1:cvPyrSegmentation()函数没找到?

  cvPyrSegmentation()这个函数是包含在opencv2/legacy/legacy.hpp文件中,所以需要引入头文件

问题2:程序运行到cvPyrSegmentation()时,程序dang掉了?(这个问题纠结了好一会,愣是没找到原因,最好还是在learning OpenCV书上找到了解决之道)

  书上是这样写的:

关于src和dst,需要特别注意一点:由于图像金字塔各层的长和宽都必须是整数,
所以必须要求起始图像的长和宽都能够被2整除,并且能够被2整除的次数不少以金字塔总层数。
例如,对于4层金字塔的高度或宽度为80(2 * 2* 2 * 5)是满足要求的,而为90时(2 * 3* 3 * 5)就是不符合要求的。

  所以我将原图设置为了400 * 400 的图像,证实其的正确性。

下面是出图的结果:(由于对图像进行了不正当的操作,原图稍微有点模糊,但不影响最终的效果)

关于cvPyrSegmentation(src, dst, storage, &comp, level, threshold1, threshold2)函数报错的问题解答的更多相关文章

  1. onerror="javascript:this.src='images/defaultUpload.png';"【容易导致死循环报错】

    当无法找到默认图片时,onerror="javascript:this.src='images/defaultUpload.png';"容易导致死循环报错

  2. Multi-catch parameters are not allowed for source level below 1.7 报错处理

    有可能是你项目右键build-path里面的这个东西 在项目上右键properties->project Facets->修改右侧的version  保持一致 还有一个就是Window里面 ...

  3. PHP文件夹文件拷贝/复制函数 dir_copy($src = '', $dst = '')

    /* * 文件夹文件拷贝 * * @param string $src 来源文件夹 * @param string $dst 目的地文件夹 * @return bool */ function dir ...

  4. canvas.drawBitmap(bitmap, src, dst, paint)

    // GameView.drawImage(canvas, mBitDestTop, miDTX, mBitQQ.getHeight(), mBitDestTop.getWidth(), mBitDe ...

  5. 报错:OpenCV Error: Assertion failed (src.size() == dst.size() && src.type() == dst.ty pe()) in unknown function, file ..……

    在用cvDilate函数的时候,老是导致程序中断,报错如下: OpenCV Error: Assertion failed (src.size() == dst.size() && s ...

  6. python shutil 模块 的剪切文件函数 shutil.movemove(src, dst),换用 os.rename(sourceFile, targetFile)

    Google 一搜python 剪切文件,出来shutil 这模块,网上很多人也跟疯说shutil.move(src, dst)就是用来剪切文件的,结果一试,剪切毛线,文件都复制到另一个文件夹了,源文 ...

  7. Android Studio中使用android:src="@drawable/ic_launcher"报错

    今天尝试着安装了Android Studio,界面确实不错,列表什么的也改了很多. 然后新建工程,习惯性在activity_main那里加上一段代码测试看看: <ImageView androi ...

  8. 开着idea,死机了,关机重启。重启之后,重新打开idea报错java.lang.AssertionError:upexpected content storage modification

    开着idea,死机了,关机重启.重启之后,重新打开idea报错java.lang.AssertionError:upexpected content storage modification. goo ...

  9. R.java 文件内报错:Underscores can only be used with source level 1.7 or greater。

    R.java 文件内报错:Underscores can only be used with source level 1.7 or greater 网上查找后得知是Android工程图片资源命名的问 ...

随机推荐

  1. 在webView中的返回键

    在写webView中我们按一下返回键,退到上一个我们浏览的网页,到第一个页面时,按两下退出程序,且按一下时提示你在按一下退出程序 只要加上这个方法即可 public void onBackPresse ...

  2. c语言中“#if 0 / #if 1 ... #endif”的作用

    原帖地址:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=2028608&bbs_page_no=1005&bbs_id=9999 1. ...

  3. ActiveMQ--模式(队列模式/主题模式)

    两种模式:队列模式/主题模式 pom.xml <dependency> <groupId>org.apache.activemq</groupId> <art ...

  4. 「IOI2014」Wall 砖墙

    题目描述 给定一个初始元素为 \(0\) 的数列,以及 \(K\) 次操作: 将区间 \([L, R]\) 中的元素对 \(h\) 取 \(max\) 将区间 \([L, R]\) 中的元素对 \(h ...

  5. SpringBoot--⼯具表达式对象

    ⼯具表达式对象除了这些基本的对象之外,Thymeleaf将为我们提供⼀组⼯具对象,这些对象将帮助我们在表达式中执⾏常⻅任务.#execInfo:有关正在处理的模板的信息.#messages:⽤于在变量 ...

  6. unity优化-CPU(网上整理)

    CPU方面性能考虑:引擎和代码渲染模块.动画模块.物理模块.ui模块.粒子模块.加载模块.GC模块最重要的是渲染模块.UI模块和加载模块1.渲染模块主要是:场景.物体和特效的渲染a.降低Draw ca ...

  7. node指针

  8. 随机序列[SHOI2016](找规律+线段树)

    传送门 这道题的题意就是给你n个数让你在每个数之间插入+.-.*三种运算符中的一种,然后算出一个答案,再把答案加起来. 这题肯定是不能暴力的(题目都告诉你了由3n-1种结果).我们先从小的情况枚举找一 ...

  9. js保留两位小数的数字格式化方法

    // 格式化数字(保留两位小数) numberFormat (num) { let percent = Number(num.toString().match(/^\d+(?:\.\d{0,2})?/ ...

  10. JDBC--获取数据库连接

    1.JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统.统一的sQL数据库存取和操作的公共接口. 2.Java中的几种数据库存取技术: --1)JDBC直接 ...