Snoopy1316 2021-10-28 17:18 采纳率: 33.3%
浏览 70

vs2015调用OpenCV的base.hpp文件,显示error C2039: “cbrt”: 不是“std”的成员,是什么原因

源代码:


#include <math.h>
#include <iostream>
#include <float.h>
//#include <cmath>
#include <string>


#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace std;
using namespace cv;

bool draw;
Mat src;//原始图像  
Mat roi;//ROI图像
Point cursor;//初始坐标   
Rect rect;//标记ROI的矩形框

void onMouse(int event, int x, int y, int flags, void *param)
{
    Mat img = src.clone();
    switch (event)
    {
        //按下鼠标左键
    case CV_EVENT_LBUTTONDOWN:
        //点击鼠标图像时,清除之前ROI图像的显示窗口  
        cvDestroyWindow("ROI");
        //存放起始坐标  
        cursor = Point(x, y);
        //初始化起始矩形框  
        rect = Rect(x, y, 0, 0);
        draw = true;
        break;

        //松开鼠标左键      
    case CV_EVENT_LBUTTONUP:
        if (rect.height > 0 && rect.width > 0)
        {
            //将img中的矩形区域复制给roi,并显示在SignROI窗口 
            roi = img(Rect(rect.x, rect.y, rect.width, rect.height));
            rectangle(img, rect, Scalar(0, 0, 255), 2);
            namedWindow("SignROI");
            imshow("SignROI", img);

            //将画过矩形框的图像用原图像还原  
            src.copyTo(img);
            imshow("SrcImage", img);

            //显示ROI图像
            namedWindow("ROI");
            imshow("ROI", roi);
            waitKey(0);
        }
        draw = false;
        break;

        //移动光标
    case CV_EVENT_MOUSEMOVE:
        if (draw)
        {
            //用MIN得到左上点作为矩形框的起始坐标,如果不加这个,画矩形时只能向一个方向进行  
            rect.x = MIN(x, cursor.x);
            rect.y = MIN(y, cursor.y);
            //rect.width = abs(cursor.x - x);
            //rect.height = abs(cursor.y - y);
            rect.width = int (cursor.x - x);
            rect.height = int(cursor.y - y);
            //防止矩形区域超出图像的范围  
            rect &= Rect(0, 0, src.cols, src.rows);
        }
        break;
    }
}
int main()
{
    src = imread("C:/Users/admin/Desktop/ceshi.png");
    if (src.data == 0)
    {
        cout << "error, the src image is not built!" << endl;
        return -1;
    }
    namedWindow("SrcImage");
    imshow("SrcImage", src);
    setMouseCallback("SrcImage", onMouse, NULL);
    waitKey();
    return 0;
}

显示c:\users\admin\desktop\opencv\build\include\opencv2\core\base.hpp(598): error C2039: “cbrt”: 不是“std”的成员

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2021-10-28 17:22
    关注

    双击错误信息,看看定位到哪条语句。你这段代码也没用cbrt啊

    评论

报告相同问题?

问题事件

  • 创建了问题 10月28日

悬赏问题

  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
  • ¥15 Python报错怎么解决
  • ¥15 simulink如何调用DLL文件
  • ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
  • ¥30 线性代数的问题,我真的忘了线代的知识了
  • ¥15 有谁能够把华为matebook e 高通骁龙850刷成安卓系统,或者安装安卓系统
  • ¥188 需要修改一个工具,懂得汇编的人来。