opencv易错点记录

1. 判断条件不应使用CV_ASSERT(),而使用CV_Assert().

2.  用下面这个自适应阈值必须进行数据的转换,不能直接传入数据!不然程序一直崩溃,找了很久才发现。

最后一个参数给个0就可以了,倒数第二个参数为大于1的数。

   倒数第二个参数一定为基数,当为偶数的时候一直奔溃!!!

Middle_image.convertTo(show_image, CV_8U);

adaptiveThreshold(show_image, output_image, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 79, 0);

3. 距离变换第三个参数:名义上是那么多参数,我试了一下可以使用的是前四个,后面使用之后就崩溃,具体原因我也不知道。

4.  在使用int转化String类型时,定义数组长度的时候千万多比实际使用多一点,不然就一直崩溃!!!

char countText[50];
     sprintf(countText,"The Corn count is : %d", static_cast<int>(i));

5. 使用imshow()或者进行一个API操作之后注意接收的数据大小!比如直方图计算之后。。。得归一化之后才能使用。

6. mixChannels()函数中from_to[]的使用,见直方图统计那个博客。

7.日了狗了,VS的Debug下使用findcontours函数自动退出返回值为 -1073740777 (0xc0000417),改成Release就好了。感觉这是VS优化的缘故,真是日了狗!建议以后都在Release下调试吧!

8.又是比较狗血的问题:Size(cols,rows),zeros(rows, cols, type);写代码的时候注意rows和cols的位置!真的无语,为什么不统一一下啊!

9.有时候会出现ImageWatch不能查看的状态,这时候有可能是某些API的数据格式不对,例如:要求是CV_32F,而我们带入的是uchar==CV_8U,这个时候程序不会出错,而是不能查看在调试中看到Mat。

10.

    Mat_<uchar>对应的是CV_8U,Mat_<char>对应的是CV_8S,Mat_<int>对应的是CV_32S,Mat_<float>对应的是CV_32F,Mat_<double>对应的是CV_64F

        • CV_8U - 8-bit unsigned integers ( 0..255 )

    • CV_8S - 8-bit signed integers ( -128..127 )

    • CV_16U - 16-bit unsigned integers ( 0..65535 )

    • CV_16S - 16-bit signed integers ( -32768..32767 )

    • CV_32S - 32-bit signed integers ( -2147483648..2147483647 )

    • CV_32F - 32-bit floating-point numbers ( -FLT_MAX..FLT_MAX, INF, NAN )

    • CV_64F - 64-bit floating-point numbers ( -DBL_MAX..DBL_MAX, INF, NAN )

11.  真的得注意了,两次了!Mat.at(i,j),而不是Mat.(i)(j)!!!

12.  VS这个Debug和Release的问题坑了好多人,比如使用Findcourtous还有HoughLines等等函数吧,Release可以通过,二Debug不可以通过,多以建议以后直接用Release就可以了,反正都可以在线调试!

13. 有时候我们需要在VS里面联想我们之前用到的自定义数据或者系统自带的关键词,如果系统自动联想不出来,我们需要按键:ALT+右键

14.保存图片奔溃问题:  

    string str = "./";
    imwrite(str + "7.jpg", showImage);

15.关于findContours检测断断续续的问题,参数使用CHAIN_APPROX_NONE就可以了,findContours(src, contours, hierarchy,     RETR_TREE, CHAIN_APPROX_NONE, Point(-1, -1));

参考:

    http://blog.csdn.net/yang_xian521/article/details/7107786

opencv小问题大智慧的更多相关文章

  1. Python下的opencv小问题大智慧

    1.今晚日了狗了,图像显示不按照预期出现,然后突然就好了...... 2.根据第一个问题举一个例子,另一个我没保存... 是不是分不清楚????   plt.imshow(wjy2, cmap='gr ...

  2. 【分享】小工具大智慧之Sql执行工具

    原文:[分享]小工具大智慧之Sql执行工具 工具概况 情况是这样的,以前我们公司有很多Sql用于完成一些很不起眼但又不得不完成的业务,出于方便就直接在Sql查询分析器里执行,按理说应该写一些专门的工具 ...

  3. 小程序大智慧,sqlserver 注释提取工具

    原文:小程序大智慧,sqlserver 注释提取工具 开篇背景 我习惯在写表的创建脚本时将注释直接写在脚本里,比如 /*账套*/ CREATE TABLE [dbo].[AccountingBook] ...

  4. 【Linux】小应用 大智慧

    小应用 大智慧--重视 以工程师的标准要求自己

  5. 【Opencv 小工具】鼠标选区信息获取

    有时候在目标跟踪的算法初始化工作时候,需要选区一个Rect区域,来表示要跟着的目标,所以有次小工具. 使用QT和opencv 编写 项目地址 https://github.com/wzyuliyang ...

  6. opencv 小任务1 图片的缩放

    #include <opencv2/opencv.hpp> using namespace std; int main() { double fScale = 0.2; //缩放倍数 Cv ...

  7. 小游戏大智慧,10 个让人眼前一亮的 JavaScript 游戏

    摘要: JS还可以这么玩~ Fundebug经授权转载,版权归原作者所有. 这是一篇有趣的文章,我们精选了 JS13K 游戏编程挑战的优秀作品,与大家分享.JS13K 是专为 JavaScript 开 ...

  8. opencv 小程序170323

    1.滤波 GaussianBlur(imgThresholded, imgThresholded, Size(5, 5), 0, 0);//高斯滤波 medianBlur(imgThresholded ...

  9. opencv——机器视觉检测和计数

    引言 在机器视觉中,有时需要对产品进行检测和计数.其难点无非是对于产品的图像分割. 由于之前网购的维生素片,有时候忘了今天有没有吃过,就想对瓶子里的药片计数...在学习opencv以后,希望实现对于维 ...

随机推荐

  1. opencv-python教程学习系列5-处理鼠标事件

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv-python处理鼠标事件,坚持学习,共同进步. 系列教程参照OpenCV-Pytho ...

  2. fiddler Android抓包与弱网

    tools rules-ctrl+R 搜索 oSession["request-trickle-delay"] = rules-perfromance-simulate modem ...

  3. ElasticSearch(五):简单的ElasticSearch搜索功能

    这里主要是一些简单的ElasticSearch的搜索功能,复杂的搜索,比如过滤,聚合等以后单独在写 1. 搜索全部 GET book/_search 直接搜索全部,下面是对搜索结果的详细介绍:默认情况 ...

  4. 使用 WPF 开发一个 Windows 屏幕保护程序

    最近有小伙伴问我如何可以让 Windows 静置一段时间不操作之后,显示一个特殊的界面.我想了想,屏幕保护程序可以做到这一点,而且,屏幕保护程序的开发也是非常简单的. 本文将介绍如何为 Windows ...

  5. HDU 3068 最长回文 manacher 算法,基本上是O(n)复杂度

    下面有别人的比较详细的解题报告: http://wenku.baidu.com/view/3031d2d3360cba1aa811da42.html 下面贴我的代码,注释在代码中: #include ...

  6. [团队项目]SCRUM项目6.0 7.0

    6.0----------------------------------------------------- sprint演示 1.坚持所有的sprint都结束于演示. 团队的成果得到认可,会感觉 ...

  7. MySQL Inception--原理和注意事项

    ========================================================= MySQL Inception原理图 ======================= ...

  8. 构建一个dbt 数据库适配器

    脚手架新的适配器 首先,将odbc适配器模板复制到同一目录中的新文件. 更新dbt / adapters / factory.py以将新适配器包含为类型.还要将类型添加到dbt / contracts ...

  9. 声明变量(Declared Variable)和非声明变量(Undeclared Variable)的区别

    声明变量的作用域限制在其声明位置的上下文中,而非声明变量总是全局的. 声明变量在任何代码执行前创建,而非声明变量只有在执行赋值操作的时候才会被创建. 声明变量是它所在上下文环境的不可配置属性(non- ...

  10. WCF揭秘学习笔记(4):可信赖会话、会话管理、队列、事务

    可信赖会话 WCF的可信赖会话在绑定层保证消息只会被传输一次,并且保证消息间的顺序.当使用TCP通信时,协议本身保证了可靠性,但它只在两点间的网络 包这个层面提供了这样的保证.WCF的可信赖会话特性保 ...