当我尝试在 OpenCV IOS 中归因变量时发生奇怪的崩溃
Posted
技术标签:
【中文标题】当我尝试在 OpenCV IOS 中归因变量时发生奇怪的崩溃【英文标题】:Weird crash when I try to attribute a variable in OpenCV IOS 【发布时间】:2016-08-08 09:38:43 【问题描述】:有些事情我无法理解。我正在为我的 ios 设备使用 OpenCV IOS。
我有一个带有私有变量 cv::Rect
的 C++ 类。此变量位于我的 .h 文件中。
在我的 .cpp 文件中,我有一个创建 cv::Rect
的方法。然后,我想将这个新创建的 cv::Rect 归因于我的类变量,但它崩溃了,我不明白为什么。
.h 文件
class detection
public:
detection();
cv::Mat processImage(cv::Mat frame);
cv::Mat detectFace(cv::Mat frame);
public:
cv::Rect getRectangleDetection();
void setRectangleDetection(cv::Rect& rect);
private:
cv::Rect _rectangeDetect;
;
.cpp 文件
cv::Mat detection::processImage(cv::Mat frame)
Mat originalColorImage;
frame.copyTo(originalColorImage);
int cx = frame.cols/2;
int cy = frame.rows/2;
int width = 1000;
int height = 1000;
NSLog(@"[INFO] Rectangle creation");
cv::Rect rect1(cx-width/2, cy-height/2, width,height);
cv::Rect test2;
//test2 = rect1;//It works !
setRectangleDetection(rect1); // or _rectangeDetect = rect1 --> both don't work
cv::rectangle( originalColorImage,rect1,
cv::Scalar(255, 0, 0),4);
return originalColorImage;
我查看了崩溃报告,我看到了:
exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000000
Triggered by Thread: 0
Filtered syslog:
None found
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 detect 0x000000010007f580 cv::Rect_<int>::operator=(cv::Rect_<int> const&) (types.hpp:1689)
1 detect 0x000000010007f504 OpenCV::setRectangleDetection(cv::Rect_<int>) (OpenCV.mm:172) //This is the setter but If I'm not using the setter the error will come from _rectangleDetect = rect1.
我也尝试初始化变量 cv::Rect 但行为相同。
你知道发生了什么吗?真的,我试图找出原因,但没有成功。 以前用过很多OpenCv,第一次遇到这种情况。
谢谢!
【问题讨论】:
你能逐字显示你的代码吗?示例代码中的processImage
只是一个函数,而不是类的成员,而变量 _rectangleDetect
是成员。
我添加了代码。 ProcessImage 是我班级的函数部分,_rectangleDetect 是我班级的成员。
【参考方案1】:
好的,我发现了问题。这是一个愚蠢的。 实际上,在我使用检测类时,我在其他类上忘记了初始化对象。
Detection _detect = new Detection()
由于我没有从以下行中得到任何错误,而且行为似乎很好(即使进行了一些调试),所以我没有想到这一点。
_detect->processImage(frame);
还是谢谢你们。
【讨论】:
以上是关于当我尝试在 OpenCV IOS 中归因变量时发生奇怪的崩溃的主要内容,如果未能解决你的问题,请参考以下文章
什么特别允许应用归因显示在来自 iOS 应用的 Facebook 帖子上?
Mongoose:使用 find() 并将值归因于变量时,save() 不是函数