大略easy 2018-04-09 06:58 采纳率: 50%
浏览 2539
已采纳

opencv中未使用除法仍然出现Integer division by zero的问题?

如图1、2所示程序,程序中并没有使用除法,但仍然出现了被除数不能为0的问题,求大佬解惑!
图片说明
图片说明
图片说明

代码如下:

 #include <opencv2/opencv.hpp>
#include <iostream>



using namespace cv;
using namespace std;
int main(int argc, char**argv)
{
    Mat image, img;
    image = imread("D:\\VS2013\\1.bmp");

    img = image.clone();

    Mat gray_image;
    cvtColor(img, gray_image, CV_BGR2GRAY);

    Mat thre_image;
    threshold(gray_image, thre_image, 120, 255, CV_THRESH_BINARY);

    Mat erode_image, dilate_image;
    Mat element = getStructuringElement(MORPH_RECT, Size(5, 5));
    erode(thre_image, erode_image, element);
    dilate(erode_image, dilate_image, element);

    vector<vector<Point>> contours;
    vector<cv::Mat> rois;
    findContours(dilate_image, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
    for (int i = 0; i<(int)contours.size(); i++)  //分割的个数
    {
        double x = contourArea(contours[i]);//i个分割部分的面积
        if (x > 71000)
        {
            Rect boundrect = boundingRect(contours[i]);
            Mat ROI = img(boundrect).clone();
            rois.push_back(ROI);
        }
    }

    for (int j = 0; j<(int)rois.size(); j++)
    {
        char filename[500];
        sprintf_s(filename, "%s%d%s", "D:\\fenge\\", j, ".jpg");
        imwrite(filename, rois[j]);
        //string Img_Name = "D:/fenge/" + to_string(j) + ".jpg";
        //imwrite(Img_Name, rois[j]);
    }

    //  imshow("test", img);

    waitKey();
    system("pause");
    return 0;
}

  • 写回答

1条回答 默认 最新

  • JK_Leo 2018-04-09 09:48
    关注

    你这个应该不是 有没有使用除法的问题,有可能是数据类型不对,检查一下变量的数据类型,看一下是不是数据类型定义出了问题?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?