opencv c ++ HSV图像通道分离异常

时间:2014-07-08 16:20:16

标签: opencv hsv

我知道这个问题已被多次询问,我试图实现他们的答案,但它在我的代码中引起了异常。

操作系统:Windows 7 OpenCV:2.4.9

这是我的代码:

#include "stdafx.h"

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"

using namespace cv;
using namespace std;

 int main( int argc, char** argv )
 {
    VideoCapture cap(0); //capture the video from webcam

    if ( !cap.isOpened() )  // if not success, exit program
    {
         cout << "Cannot open the web cam" << endl;
         return -1;
    }

   Mat imgHSV;
   _sleep(100); //give the camera a chance to wake up
    while (true)
    {
        Mat imgOriginal;
        bool success = cap.read(imgOriginal);
         if (!success) //if not success, break loop
        {
             cout << "Cannot read a frame from video stream" << endl;
             break;
        }



   cvtColor(imgOriginal, imgHSV, COLOR_BGR2HSV); //Convert the captured frame from BGR to HSV
       vector<Mat> hsv_planes;
   split( imgHSV, hsv_planes );
//hsv_planes[0] // H channel
//hsv_planes[1] // S channel
//hsv_planes[2] // V channel
  imshow(thresholded_window, hsg_planes[2]); //show the S channel
        if (waitKey(30) == 27) //wait for 'esc' key press for 30ms. If 'esc' key is pressed, break loop
       {
            cout << "esc key is pressed by user" << endl;
            break; 
       }
    }

   return 0;
}

分割线上抛出异常:&#34; TrackColour.exe中0x62B978C9(opencv_core249.dll)的未处理异常:0xC0000005:访问冲突写入位置0xFEEEFEEE。&#34;

1 个答案:

答案 0 :(得分:1)

我想出了我的问题,这种情况发生在其他任何人身上。

在VS中,我正在进行调试构建,但是我正在链接到opencv的非调试版本。请注意我的错误消息opencv_core249,它应该是opencv_core249d(注意&#39; d&#39;)。我更新了我的CV链接以使用调试库,它可以工作。

其他opencv调用使用错误的库执行得很好,某些东西必须是split的唯一。