c – 在框架上用opencv绘制一个矩形

前端之家收集整理的这篇文章主要介绍了c – 在框架上用opencv绘制一个矩形前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个框架,并希望在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; 
 }

wenn我运行代码我得到了内存错误.

Unhandled exception at 0x000007fefd42caed in OpenCV_capture.exe: Microsoft C++ 
exception: cv::Exception at memory location 0x0018ead0..

知道为什么我会这样做,我该如何解决

解决方法

您正在将C API与C API混合在一起.使用“cv”命名空间中的矩形函数而不是“cvRectangle”:
cv::rectangle(
    frame,cv::Point(5,cv::Point(20,cv::Scalar(255,255)
);

此外,您试图在未打开的窗口中显示图像:

int main() {
    cv::namedWindow("test ");

    // ...

如果图像没有正确加载,这可能也会导致错误,因为您正在尝试绘制空图像.

if (frame.data != NULL) {
    // Image successfully loaded
    // ...

猜你在找的C&C++相关文章