我有一个框架,并希望在specefic位置绘制一个矩形,矩形:
#include "opencv2/opencv.hpp"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include<conio.h>
int main () {
cv::Mat frame = cv::imread("cmd.png");
cvRectangle(
&frame,
cvPoint(5,10),
cvPoint(20,30),
cvScalar(255,255,255)
);
cv::imshow("test " , frame);
while (cv::waitKey() != 23) ;
return 1;
}
Run Code Online (Sandbox Code Playgroud)
wenn我运行代码我得到了内存错误.
Unhandled exception at 0x000007fefd42caed in OpenCV_capture.exe: Microsoft C++
exception: cv::Exception at memory location 0x0018ead0..
Run Code Online (Sandbox Code Playgroud)
知道为什么我会这样做,我该如何解决它
Nik*_*iko 16
您正在将C++ API与C API混合使用.使用"cv"命名空间中的矩形函数而不是"cvRectangle":
cv::rectangle(
frame,
cv::Point(5, 10),
cv::Point(20, 30),
cv::Scalar(255, 255, 255)
);
Run Code Online (Sandbox Code Playgroud)
此外,您试图在未打开的窗口中显示图像:
int main() {
cv::namedWindow("test ");
// ...
Run Code Online (Sandbox Code Playgroud)
如果图像没有正确加载,这可能也会导致错误,因为您正在尝试绘制空图像.
if (frame.data != NULL) {
// Image successfully loaded
// ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28722 次 |
| 最近记录: |