Ask Your Question

isaacenrique's profile - activity

2020-12-20 17:00:10 -0600 received badge  Nice Question (source)
2020-05-31 20:34:01 -0600 received badge  Famous Question (source)
2019-07-21 13:02:35 -0600 received badge  Good Question (source)
2019-03-24 07:28:57 -0600 received badge  Notable Question (source)
2018-11-23 14:07:53 -0600 received badge  Notable Question (source)
2017-11-24 07:34:42 -0600 marked best answer set ROI in cv::Mat

Greetings.

I need to set the region of interest or ROI in an image cv::Mat. I have seen that there are functions for IplImage images, but I could not find the equivalent functions for cv::Mat.

Also, I have the following questions:

Is it possible to set an ROI with a customized form, ie other than a rectangle?

Thanks in advance for any responses and / or comments.

2017-03-22 13:15:19 -0600 received badge  Popular Question (source)
2017-03-17 15:22:42 -0600 received badge  Taxonomist
2016-07-24 17:19:44 -0600 asked a question Message displayed at the end of execution

Greetings.

I am creating an application with OpenCV and Qt. My program works correctly, but when execution completes shown the following message on the console:

profiling:C:\OpenCV-2.4.9\debug\modules\imgproc/CMakeFiles\opencv_imgproc.dir\src\contours.cpp.gcda:Data file mismatch - some data files concurrently may have been updated without locking support

I had never seen something like this. I do not know that this message should be. Is it a mistake?, Is it related to OpenCV?, What I can do about it?

Thanks in advance for any help and/or suggestions.

2016-03-24 12:09:15 -0600 received badge  Nice Question (source)
2016-03-10 20:13:44 -0600 asked a question Behavior of Morphology Functions in Edge Cases

Greetings.

I'm using OpenCV 2.4.9.

What should be the behavior of the functions of morphology (erosion and dilation) when the structuring element is null (cv::Mat()) or the number of iterations is zero (0) or negative?

Initially I thought that in such cases the result should be the input image without any change. However, I have noticed that is not the case.

Is it a bug?

Thanks in advance for any help and/or suggestions

2016-02-22 13:23:06 -0600 asked a question Naming OpenCV target DLLs, when building from source on Windows

Regards.

I am working with OpenCV on Windows.

Recently, I built OpenCV 2.4 (I used CMake 3.4.2). I only need the core, imgproc and highgui modules, so I built just those modules.

I have noticed that the names of the resulting DLLs are style "libopencv_core2410d.dll"... that is, with the version number included.

Therefore, to link these DLLs in my project file (Qt PRO file) I have lines like this:

-L<my_opencv_install_dir> -lopencv_core2410d -lopencv_imgproc2410d -lopencv_highgui2410d

In contrast, I would rather have a line like this:

-L<my_opencv_install_dir> -lopencv_core -lopencv_imgproc -lopencv_highgui

My doubts are:

I can configure the building process so that the resulting OpenCV DLLs do not include the version number in the name?,

How can I do that?,

Is it advisable to do what I want?

Thank you in advance for any help, suggestions and/or comments

2016-02-22 12:38:31 -0600 asked a question About the OpenCV Tests

Regards.

I am working with the library OpenCV on Windows.

Newly built OpenCV 2.4 using CMake 3.4.2 (cmake-gui). During the configuration step, prior to build of the library, I can see that you can choose to build some performance tests and others tests.

My doubts are about:

What is the tests about? Where I can find detailed explanation of these tests ? How I can run the tests and see if all went well?

Thanks in advance for any help and/or suggestions.

2016-02-12 07:05:06 -0600 received badge  Famous Question (source)
2015-06-03 05:13:22 -0600 received badge  Notable Question (source)
2015-05-25 16:28:18 -0600 received badge  Notable Question (source)
2015-03-30 09:59:36 -0600 received badge  Popular Question (source)
2015-03-19 04:34:18 -0600 received badge  Famous Question (source)
2014-11-11 15:14:24 -0600 received badge  Popular Question (source)
2014-10-31 16:11:13 -0600 asked a question Center Point of a Contour

Greetings.

I wonder if there is a routine in OpenCV to determine the center point (center of mass or center of gravity) for an contour of the type returned by the cv::findContours() function.

Thanks in advance for any help and/or suggestions

2014-09-03 08:56:33 -0600 asked a question How forward declare cv::Point class?

Greetings.

I wonder if I can use forward declarations with cv::Point class?. So far I've gotten several errors, I guess that due to the nature of cv::Point (a typedef).

Thanks in advance for any help and/or suggestions.

2014-08-22 21:53:52 -0600 asked a question Forward Declarations for class cv::Point

Greetings.

I wonder if I can use forward declarations with cv::Point and cv::Size classes.

I tried, but compilation error occurs arising from the fact that cv::Point is a typedef and is a subclass of cv::Point_ . Similarly happens with cv::Size.

What can I do? Is possible to use forward declarations for these classes?

Thanks in advance for any help and/or suggestions.

2014-07-16 06:20:57 -0600 received badge  Popular Question (source)
2014-06-19 22:50:50 -0600 received badge  Famous Question (source)
2014-06-09 14:40:31 -0600 asked a question Automatic Variables with the OpenCV library types

Greetings.

I wanted to ask about the appropriateness of using automatic variables for openCV library types as cv::Mat and cv::Point, etc.

More precisely, in the next block of code:

void preprocMorf(const cv::Mat& src, cv::Mat& dst, QList< ParamsOpMorf > ops)
{
    src.copyTo( dst );
    for(int i = 0; i < ops.size(); i++)
    {
        Morfologia::Op op = ops.at(i).codgOp;
        cv::Mat ee = ops.at(i).ee;
        cv::Point ancla = ops.at(i).ancla;
        int iters = ops.at(i).iters;
        bool vecind8 = ops.at(i).vecind8;

        /* select and apply operation */
        switch( op )
        {

        }
    }
}

Is it better (more efficient) make the declaration of variables (ee, ancla, etc) outside the for loop?

or

Is it better to leave it like this?... or is it indifferent / not important?

More clearly, I am asking the question about which is better (more efficient):

(a) The code is as above.

or

(b) From the following manner:

void preprocMorf(const cv::Mat& src, cv::Mat& dst, QList< ParamsOpMorf > ops)
{
    Morfologia::Op op;
    cv::Mat ee;
    cv::Point ancla;
    int iters;
    bool vecind8;

    src.copyTo( dst );
    for(int i = 0; i < ops.size(); i++)
    {
        op = ops.at(i).codgOp;
        ee = ops.at(i).ee;
        ancla = ops.at(i).ancla;
        iters = ops.at(i).iters;
        vecind8 = ops.at(i).vecind8;

        /* select and apply operation */
        switch( op )
        {

        }
    }
}

I understand it's a question a little silly, but I had doubts and wanted to have some opinion about it.

Thanks in advance for any help and / or suggestions.

2014-06-02 08:11:33 -0600 received badge  Notable Question (source)
2014-05-04 11:17:18 -0600 received badge  Popular Question (source)
2014-05-04 11:17:18 -0600 received badge  Notable Question (source)
2014-05-04 11:17:18 -0600 received badge  Famous Question (source)
2014-02-25 03:47:15 -0600 received badge  Notable Question (source)
2014-02-11 12:16:12 -0600 received badge  Popular Question (source)
2014-02-09 20:57:46 -0600 asked a question Convenience of the forward declarations for OpenCV objects

Greetings.

I am creating a GUI application using Qt and OpenCV. The application displays a series of widgets (buttons, sliders, ect) and an image.

I'm using forward declarations for Qt widgets classes (to reduce compile time). My question here is whether is it appropriate or desirable to use forward declarations for OpenCV classes as cv::Mat? or is it a mistake or not worth it?.

Thanks in advance for any help and/or suggestion.

2013-12-11 10:56:48 -0600 received badge  Popular Question (source)
2013-12-08 00:58:55 -0600 asked a question Digital Image Gradient

Greetings .

I want to implement the Fast Radial Symmetry Transform (described here http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.97.4064&rep=rep1&type=pdf) to identify nuclei of cells in histological images of breast cancer for this I need to first calculate the gradient of the image. Until now he had not reviewed very afond what the gradient of a digital image is itself. Now I have several questions I would like to clarify:

(1) According understand the gradient of each point of a function is a vector formed by the partial derivatives of each variable, so for a digital image (which is a discretization of a 2D function) the gradient at each point in the image? which is exactly?. I guess it should be a two-channel digital image or am I wrong?

(2) How I can calculate or approximate the gradient of an image?

(3) Is there a function in OpenCV to compute or approximate the gradient of an image?

Thanks in advance for any help and/or suggestions and I apologize if my questions seem silly or too elementary .

2013-11-21 02:56:54 -0600 asked a question Implement Color Deconvolution

Greetings.

I need to implement the transformation Color Deconvolution for use on histological images of breast cancer. I have read a couple of papers explaining the theory of the method (1) and its practical application (2).

(1) Quantification of Histochemical Staining by Color Deconvolution - Ruifrok, A

(2) Automatic Nuclei Segmentation in H&E Stained Breast Cancer Histopathology Images

From what I understand, one of the first things I do is to compute the optical density image, but honestly I have no idea how.

Also, is there any function in OpenCV to help me calculate the transformation Color Deconvolution?

Thanks in advance for any help and / or suggestions.

2013-11-01 04:19:07 -0600 asked a question Data type of a Structuring Element

Greetings.

I wanted to know if the Structuring Element passed to a function of morphology as 'cv::erode ()' (and others) can be CV_32F type or the type should be strictly CV_8U.

The documentation says nothing explicitly about this, and the explanation of the function 'cv::erode ()' (same as to 'cv :: dilate ()') says that the operation considers only those pixels of SE nonzero, then... a SE Could contain, for example, pixels with negative values ​​and still work with these operations?

Thanks in advance for any help and/or suggestions.

2013-10-25 02:18:48 -0600 asked a question Hit-or-miss at the edges of the image

Greetings.

I recently published a post where I asked for an implementation efficient for the operation morphological Hit-or-Miss. However, something that I noticed recently and I'm not sure of is what should be the behavior of the operation at the edges of an image.

When considering pixels at the edges of the picture, part of SE (and therefore part of the pattern of 1's and 0's that are looking for) be outside, so my question is how the operation should act in such cases:

(a) Put the pixels of the edges to the value of background, namely, does not belong to the result of Hit-or-Miss. This is because there is a part of the SE which necessarily will not match the image (which will be out of the picture)

or

(b) Consider only the part of the SE that is contained in the image and determine the value of the pixels edges based on that region.

or

(c) Is there any other alternative?

Thanks in advance for any help and / or suggestions.

2013-10-20 02:34:57 -0600 asked a question Efficient Implementation morphological operation Hit-or-Miss

Greetings.

Recently I wrote a function to implement the operation morphological hit-or-miss. I based on the definition of the operation given in the book Digital Image Processing by Gonzalez & Woods.

I show my implementation below:

void hitOrMiss(const Mat& src, Mat& dst, const Mat& ee, Point orig)
{
    Mat eeHit = (ee > 0);

    Mat hit;
    erode(src, hit, eeHit, orig);

    if( countNonZero( ee ) < ee.rows * ee.cols )
    {
        Mat complemnt = (src == 0);
        Mat eeMiss = (ee == 0);

        Mat miss;
        erode(complemnt, miss, eeMiss, orig);

        dst = hit & miss;    /* interseccion */
    }
    else
        dst = hit;
}

My implementation considered a structural element that can have foreground values ​​(greater than zero), background (zeros) and do not care values ​​(negative). For this, the SE received as parameter must be of type CV_32F.

My specific questions are whether there is a more efficient way to implement this operation, and/or if it already exists in OpenCV this operation. I would also like to know, how to make my function supports "in-place" mode.

I should also implement the operations of thinning, thickening and pruning, which are based on hit-or-miss, so it is convenient to have the most efficient implementation of this operation.

Thanks in advance for any help and / or suggestions.

2013-10-09 23:48:05 -0600 asked a question Implementation of the operation Ultimate Erosion

Greetings.

I want to implement the operation Ultimate Erosion. So I need to use the distance transform and find the regional maxima.

My specific issues here are:

  • In the case of OpenCV distance transform, what parameter values ​​to use for 'distanceType' and 'maskSize'?.

  • How to find the regional maxima in an image?, Is there any OpenCV routine for this task?

I would also like to know if my approach to calculate the Ultimate Erosion operation is the most efficient or is there a more efficient method to implement this operation?

Thanks in advance for any help and/or suggestions.

2013-09-21 00:27:34 -0600 asked a question circularity of a connected component

Greetings.

I wanted to know if it was possible to know whether a given connected component has an outer shape (relatively) circular or elliptical. Is there any function to do that? o How to calculate the circularity or roundness?.

Thanks in advance for any help and / or suggestions

2013-09-08 02:54:02 -0600 asked a question Progress bar for morphological operations

Greetings.

I want to add a progress bar to my application of mathematical morphology. For morphology operations I am using OpenCV functions cv::erode, cv::dilate, cv::morphologyEx and others that I built based on the above.

The problem is that I do not know how to recover (if possible) some information of these functions to display on the progress bar. I simply invoke the functions and waited for this return. However, to show a progress bar should know some information of the progress of the operation, is this possible in OpenCV?.

If not possible, what alternatives I have for the progress bar?

Thanks in advance for any help and/or suggestions.

2013-08-20 03:17:26 -0600 asked a question Elementary Isotropic Structuring Element

Greetings.

I have read in some articles that use morphological reconstruction operations for preprocessing, where it is said that in the reconstruction use an "Elementary Isotropic Structuring Element". I guess they refer to a solid rectangle of 3x3 or am I wrong?

Thanks for any response and / or suggestions.