zoukankan      html  css  js  c++  java
  • opencv小问题大智慧

    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

  • 相关阅读:
    .Net/C# 应用程序直接读取本地 Cookies 文件(WinXP SP2 调用 API: InternetGetCookie 无果)
    wininet.dll函数库:不会过期的cookie
    WinForm中TextBox控件循环自动滚动示例
    JScript中Date.getTime转.Net中的DateTime
    js gettime c# ticks
    mysql查看整库个表详情
    rds分区实践
    mysql5.7.21源码安装
    EXPLAIN详解
    C#基础温习(4):C#中string数组和list的相互转换
  • 原文地址:https://www.cnblogs.com/wjy-lulu/p/6822109.html
Copyright © 2011-2022 走看看