2020-09-27 07:42:29 -0600 | received badge | ● Popular Question (source) |
2019-02-01 19:07:18 -0600 | received badge | ● Notable Question (source) |
2018-06-16 23:13:40 -0600 | received badge | ● Popular Question (source) |
2013-10-06 17:17:11 -0600 | received badge | ● Editor (source) |
2013-10-06 17:16:05 -0600 | asked a question | Hough transform and line length Hey guys. So, I've been reading a lot about the Hough transform (both on OpenCV forums and other sources), and I think understand the theory behind it relatively well. i.e. how the result are a set of infinite lines. However, I am uncertain how I can use this to identify the lines/sides that make up a shape. If you have hectagon lets say, and you do the Hough transform, you will get a whole bunch of lines and it will look like a mess. How can I limit the lines to the actual sides of the shape? I am new to this subject, and I am amazed at all the functionality that OpenCV has. I am using it to practice even though I also have Matlab student version sitting on my computer. Thanks. |
2013-10-06 08:40:49 -0600 | received badge | ● Supporter (source) |
2013-10-06 08:40:38 -0600 | commented answer | Reduce line thickness - skeletonization and canny related Great, thank you. Will review that algorithm. I did search, but didn't find this post. |
2013-10-06 08:18:35 -0600 | asked a question | Reduce line thickness - skeletonization and canny related Hey guys. I have a set of shapes with varying border thicknesses. How can I reduce their thickness to the smallest amount? (i.e. a trace of each shape with 1 pixel thickness). When I use the "canny" method, I get the usual double border issue b/c of the large thickness of the original shape's border. When I use a skeletonization approach, I am not really sure how to implement "when to stop" the skeletonization process. The erosion & opening sequence reduces the border thickness nicely on each iteration, but if you don't stop at the right moment, then some shapes just disappear. If you stop too early, then some shapes will still be "too thick". In fact, you can't find an iteration that is satisfactory to all shapes. May have to do the skeletonization a shape at a time - then it still leaves the issue of when to stop. Do you guys have any ideas what other techniques I can use? Thanks. |
2013-10-05 10:56:10 -0600 | commented question | findContours throwing unhandled exception Thx. If the findContours expects binary ONLY, then the outcome makes sense. |
2013-10-05 09:48:54 -0600 | asked a question | findContours throwing unhandled exception Hey guys. I am getting an exception with findContours. The call stack is below. Now here's the kicker - it only happens like 75% of the time. I suppose findContours algorithm has some random element to it that affects whether this exception results or not. Code wise, CODE 1 does NOT have the issue, while CODE 2 does have the issue (i.e. CODE 2 does not have the Canny step). CODE 1: Canny(image, cannyOutput, iThreshold, iThreshold*2, 3); findContours( cannyOutput, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) ); CODE 2: (Canny commented out and findContours uses the image Mat directly instead of cannyOutput) // Canny(image, cannyOutput, iThreshold, iThreshold*2, 3); findContours( image, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) ); Now both image and cannyOutput are Mat structures - so no data type incompatibiilty. Furthermore, the original "image" is nothing fancy - a bunch of simple shapes drawn in Windows Paint and some of them filled in with colour. As far as I understand, Canny is just a edge detector - I would imagine it's not essential to run finContours if it's a bunch of wireframe shapes with some of them filled in with solid colours? Thanks! Unhandled exception at at 0x76B74B32 in OpenCVTestBed.exe: Microsoft C++ exception: cv::Exception at memory location 0x0110ED0C. KernelBase.dll!_RaiseException@16() Unknown msvcr110d.dll!_CxxThrowException(void * pExceptionObject, const _s__ThrowInfo * pThrowInfo) Line 152 C++ opencv_core246d.dll!cv::error(const cv::Exception & exc) Line 454 C++ opencv_imgproc246d.dll!cvStartFindContours(void * _img, CvMemStorage * storage, int header_size, int mode, int method, CvPoint offset) Line 196 C++ opencv_imgproc246d.dll!cvFindContours(void * img, CvMemStorage * storage, CvSeq * * firstContour, int cntHeaderSize, int mode, int method, CvPoint offset) Line 1681 C++ opencv_imgproc246d.dll!cv::findContours(const cv::_OutputArray & _image, const cv::_OutputArray & _contours, const cv::_OutputArray & _hierarchy, int mode, int method, cv::Point_<int> offset) Line 1712 C++ OpenCVTestBed.exe!main(int argc, char * * argv) Line 48 C++ OpenCVTestBed.exe!__tmainCRTStartup() Line 240 C OpenCVTestBed.exe!mainCRTStartup() Line 164 C kernel32.dll!@BaseThreadInitThunk@12() Unknown ntdll.dll!___RtlUserThreadStart@8() Unknown ntdll.dll!__RtlUserThreadStart@8() Unknown |
2013-10-02 20:30:58 -0600 | asked a question | No symbols loaded message from within Visual Studio Hey guys. I am debugging one of my applications. When I try to step into the approxPolyDP opencv function, it doesn't find the source. It gives me the following message: [Frames below may be incorrect and/or missing, no symbols loaded for opencv_core246d.dll] What do I do? Thanks!! |
2013-09-30 07:34:40 -0600 | asked a question | Building OpenCV custom library with Visual Studio Express Hey guys. I want to make some modifications to the OpenCV logic and build my own libraries. Is there a good tutorial regarding this? From what I saw with the search results, you need Nvidia CUDA and must use VS Express 2010 - and not 2012. Is this still the case? It would be nice if there was a straightforward guide regarding this. Alternatively, if it's easier to build it with some other compiler and just reference the built libraries through VS Express, please let me know. Thanks for your feedback. |