First time here? Check out the FAQ!

Ask Your Question
1

Dilation produces translation and doesn't work

asked Feb 23 '13

Keba gravatar image

updated Jan 13 '18

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)
Preview: (hide)

1 answer

Sort by » oldest newest most voted
1

answered Feb 25 '13

Keba gravatar image

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));
Preview: (hide)

Question Tools

Stats

Asked: Feb 23 '13

Seen: 998 times

Last updated: Feb 25 '13