Ask Your Question

Keba's profile - activity

2013-03-04 21:24:13 -0600 commented answer Non-motion detection

Well... cv::VideoCapture can load a video and give you video frames cv::split can split your color image into 3 channels, blue, green and red cv::absdiff can calculate the absolute difference between any two images cv::sum can calculate the sum of an image So.. get frames from the video inside a loop, using cv::videocapture. Compare the previous frame with the current frame, by calculating the difference image using cv::absdiff (you may need to split the images into bgr components using cv::split, and compare them seperately). Calculate the sum using cv::sum. If the sum exceeds a threshold value that you decide, then you can conclude that the car is moving between the two frames. If you want, you can save the values inside an array or vector, and draw a nice plot of the activity.

2013-02-25 03:31:56 -0600 received badge  Self-Learner (source)
2013-02-25 02:42:06 -0600 answered a question Dilation produces translation and doesn't work

Found the problem. The kernel was not defined right, and caused random behavior. I sure didn't need the debugger to tell me such useless information, or in any way indicate to me that there was a problem.

The bad way:

cv::dilate(image, image, cv::Mat(cv::Size(50,50),CV_8UC1));

The good way:

cv::dilate(image, image, cv::Mat::ones(50,50,CV_8UC1));
2013-02-23 05:10:01 -0600 received badge  Student (source)
2013-02-22 22:07:59 -0600 answered a question Non-motion detection

I am no expert, but I would think the video would contain more activity when the car was moving, compared to when it was parked. The task would then be to measure the activity, and determine how much activity constitutes car movement. One measure of activity of a video, is to calculate the absolute difference between the last and current frame (differencing), and take the sum of the resulting image. In this manner, one could calculate the activity for each pair of frames, and if this value exceeded some threshold, one could conclude that the car was moving.

2013-02-22 21:44:13 -0600 asked a question Dilation produces translation and doesn't work

Whenever I use dilation, the result contains no dilation, but is simply the input image, that is translated (moved) downward to the right. I do not get any errors during compilation or runtime. Using the exact same code, my friend gets the correct result. AFAIK, his setup is identical to mine. His hardware is also the same. Obviously, something is wrong with my installation, and I want to fix it. Any help is greatly appreciated.

My setup:

  • Windows 7 ultimate (64-bit)
  • Visual C++ 2010 Express
  • OpenCV 2.4.3 (downloaded, not built)

I have included the code below, and the getBuildInformation.

#include <opencv\cv.h>
#include <opencv\highgui.h>

int main(){
    cv::Mat image = cv::imread("C:\\OpenCV2.4.3\\doc\\opencv-logo.png",0);

    cv::imshow("1", image);
    cv::imwrite("1.png",image);

    cv::threshold(image,image,200,255,1);

    cv::imshow("2", image);
    cv::imwrite("2.png",image);

    cv::dilate(image, image, cv::Mat(cv::Size(50,50),CV_8UC1));

    cv::imshow("3", image);
    cv::imwrite("3.png",image);

    printf("%s",cv::getBuildInformation());

    for(;;){
        if(cv::waitKey(1) >= 0) return 0;
    }
    return 0;
}

General configuration for OpenCV 2.4.3 =====================================
  Version control:               commit:6484732

  Platform:
    Host:                        Windows 6.1 x86
    CMake:                       2.8.9
    CMake generator:             Visual Studio 10
    CMake build tool:            C:/PROGRA~2/MICROS~2.0/Common7/IDE/devenv.com
    MSVC:                        1600

  C/C++:
    Built as dynamic libs?:      YES
    C++ Compiler:                C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/amd64/cl.exe
    C++ flags (Release):         /DWIN32 /D_WINDOWS /W4  /EHa /GR  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /arch:SSE2 /Oi /fp:fast  /wd4251 /MP4  /MD /O2 /Ob2 /D NDEBUG
    C++ flags (Debug):           /DWIN32 /D_WINDOWS /W4  /EHa /GR  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /arch:SSE2 /Oi /fp:fast  /wd4251 /MP4  /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
    C Compiler:                  C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/amd64/cl.exe
    C flags (Release):           /DWIN32 /D_WINDOWS /W3   /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /arch:SSE2 /Oi /fp:fast    /MP4  /MD /O2 /Ob2 /D NDEBUG
    C flags (Debug):             /DWIN32 /D_WINDOWS /W3   /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /arch:SSE2 /Oi /fp:fast    /MP4  /D_DEBUG /MDd /Zi  /Ob0 /Od /RTC1
    Linker flags (Release):      /STACK:10000000 /machine:X86   /INCREMENTAL:NO
    Linker flags (Debug):        /STACK:10000000 /machine:X86   /debug /INCREMENTAL
    Precompiled headers:         YES

  OpenCV modules:
    To be built:                 core imgproc flann highgui features2d calib3d ml video objdetect contrib nonfree photo legacy gpu stitching ts videostab
    Disabled:                    world
    Disabled by dependency:      -
    Unavailable:                 androidcamera java ocl python

  GUI:
    QT 4.x:                      NO
    Win32 UI:                    YES
    OpenGL support:              NO

  Media I/O:
    ZLib:                        build (ver 1.2.7)
    JPEG:                        build (ver 62)
    PNG:                         build (ver 1.5.12)
    TIFF:                        build (ver 42 - 4.0.2)
    JPEG 2000:                   build (ver 1.900.1)
    OpenEXR:                     build (ver 1.7.1)

  Video I/O:
    FFMPEG:                      YES (prebuilt binaries)
      codec:                     YES (ver 53.61.100)
      format:                    YES (ver 53.32.100)
      util:                      YES (ver 51.35.100)
      swscale ...
(more)