2018-02-07 11:40:08 -0600 | marked best answer | Sequence of calls in the cv::gemm(...) function Recently I'have digged into the opencv sources, the reason was low performance of the opencv_dnn module. Searching around I have came to the cv::gemm(...) function. So, I see that function can be divided in two parts. First, optional part that calls optimized version of gemm routine from ocl module or if clAMDBLAS defined from clAMDBLAS. The second part makes some optional transpositions and in the end calls gemm32/64f(...) whitch (track the chain calls) will call "manual" non optimized gemmImpl(...) function! From the source code we can see, that two mentioned parts are independent, so if cv::gemm will be called both of them will be executed... and the performance drammatically drops. If I comment second part, I get 15x speed up, BUT also different results on the same data. It means that the second part does something very important, but I can not find what exactly. So, is this an issue, what does exactly cv::gemm(...) do? |
2017-12-14 05:30:22 -0600 | received badge | ● Nice Answer (source) |
2017-12-13 07:49:27 -0600 | edited answer | Detecting pattern in an image You can use copyMakeBorder(...) function to enlarge your image with borderType=BORDER_WRAP option. After that you can pr |
2017-12-13 07:16:34 -0600 | answered a question | Detecting pattern in an image You can use copyMakeBorder(...) function to enlarge your image with borderType=BORDER_WRAP option. After that you can pr |
2017-05-03 09:07:13 -0600 | commented question | what is the solution to this error The solutions is to check is image empty or not before try to show it. |
2017-05-03 09:05:25 -0600 | commented question | C++ OPENCV std::out_of_range error To many vector<vector<vector...>>, so,="" somwhere="" in="" the="" code="" you="" just="" miss="" out_of_range.="" simplify="" the="" code,="" for="" the="" instance="" you="" could="" search="" only="" "strong="" features"="" points="" and="" then="" find="" min="" area="" rect="" instead="" of="" searching="" contours.<="" p=""> |
2017-05-03 08:56:24 -0600 | commented question | Can I use OpenCV to detect weeds in a paddock? It seems that RaspberryPi is perfectly fits to your aims |
2017-05-03 08:56:24 -0600 | received badge | ● Commentator |
2017-05-03 08:49:04 -0600 | answered a question | Adaptative Gaussian Filter. As LBerger said there is no default masking option for smooth operations in opencv. For the speed up you can divide your image into several regions (for the instance in the same number as your system CPU cores) and process them in parallel, then stitch all results together. Opencv contains simple to use API for such optimizations. For the instance you can read this. |
2017-05-03 08:35:07 -0600 | commented question | Is there any OpenCV or IPP equivalent for this function? It seems you can seriously speedup your own code by replacing all the constructions as im.at<float>(x,y) by the pointers arithmetics equivalent. |
2017-05-03 08:27:50 -0600 | commented question | Opencv 3.2 and Videocapture not work Some antiviruses can lock webcam. If you use one of them you need to manually allow webcam usage. |
2017-05-03 08:23:47 -0600 | answered a question | I want to develop End to End Text Recognition in Natural Scene Images The good ideia is to check if anybody already solve your problem. Check opencv-text samples. I suggest you to start with this one. |
2017-05-03 08:19:24 -0600 | answered a question | fps - how to divide count by time function to determine fps To get an fps you should divide the so called tick-frequency (how many ticks processor makes at a second) on the task tick-count (how many ticks processor has spended to mske a particualr task). In C++ API it will be: |
2017-04-14 09:58:00 -0600 | commented question | Replace a chain of image blurs with one blur Maybe it is because of bounding effects on the image boundaries. It will be great if you just visualize the |
2017-04-14 07:11:46 -0600 | commented answer | Encoding 32FC1 explained? Sorry, but it is not clear what type of conversion you want to do? What you have on the input? What you want to get at the output? |
2017-03-24 07:49:32 -0600 | received badge | ● Nice Answer (source) |
2017-03-24 06:35:35 -0600 | commented question | can't extract opencv 2.1 if you strongly need opencv 2.1, just try to redowload the archive and make another attempt to extract |
2017-03-24 06:32:22 -0600 | commented question | namedWindow + imshow not showing on the screen does application returns when you press any button after camera has been opened? |
2017-03-24 06:22:29 -0600 | commented question | make error in openCV tuitorial example code What tools you want to use? Microsoft Visual Studio or something else? Btw, CMake is needed only for custom generation of the makefile for opencv build. |
2017-03-24 06:13:17 -0600 | answered a question | Encoding 32FC1 explained? 32FC1 means that each pixel value is stored as one channel floating point with single precision |
2017-02-28 00:37:11 -0600 | answered a question | Creating a Histogram Yes, it is possible. For the instance: |
2017-02-27 02:08:58 -0600 | commented question | I need to extract invariant features of iris from a normal picture As your code says, you detect faces with the minsize(30,30). So, the eyes detector could not accurate detect eyes on such small scales... and if we will go further how much pixels should represent the iris for the invariant description evaluation? It seems, that you are trying to extract iris images from the ordinary web or ip camera images... Do not waste your time it is not possible. The right way for the iris recognition is the stationary and controlled image acquisition setup as ophthalmologists are used. |
2017-02-27 01:41:25 -0600 | answered a question | Neural Network for Image Recognition in C++/OpenCv If you familiar with the Opencv and tiny-dnn this project could be helpfull. |
2017-02-27 01:33:27 -0600 | commented question | DirectShow camera gives black image Have you research if any other 3rddparty software can capture frames from the IDS uEye? For the instance VLC video player? |
2017-02-22 10:24:30 -0600 | received badge | ● Nice Answer (source) |
2017-02-22 07:58:24 -0600 | answered a question | Hello trying to create a cv::Mat() got Insufficient memory When you try to allocate more than 2 in power of 32 bytes in the 32-bit system it could not be done because there is not enough memory you can address (9208 * 15152 * 4(channels) > 2 in power of 32). Your image is too big for your build system. So what you should do? In case you are working in 32-bit operation system you should upgrade your operation system to 64-bit. In case you working in 64-bit system, you probably use 32-bit build environment (compiler), just switch to 64-bit build tools. |
2017-02-22 07:46:39 -0600 | commented answer | Make Border and sum image Mat copies themself into the part of the padded Mat. If 0.999... still appears the result comes from the float point arithmetic features, try to check if it will still be 0.999... if you'll increase optimal_rows and optimal_cols by 1 |
2017-02-22 05:13:19 -0600 | answered a question | Make Border and sum Because in your particular case copyMakeBorder makes extrapolation, as a result you have got slightly different sum value. To prevent this you can make custom copy without extrapolation: |
2017-02-22 02:17:55 -0600 | answered a question | correct ghosting Do you have a linear polarizer filter? As glass of the mirror is a dielectric material, the light reflected by the glass surface should be partially polarized, at the same time the light reflected by the mirror's substract (wich is metallic) should not be polarized. So, you can try to cut off those ghosting reflection by means of polarization filter, that should be mount on top of your camera lens. |
2017-02-20 05:53:39 -0600 | marked best answer | Opencv_dnn >> can't load network ResNet-101 Hello. I have found that ResNet-101 cannot be loaded by opencv dnn module. When try to load this message appears: So, it is clear that it is because: "caffe.LayerParameter" has no field named "batch_norm_param". But, what I supposed to do to solve this? Any ideas? Please, help me. |
2017-02-20 05:21:33 -0600 | received badge | ● Necromancer (source) |
2017-02-20 05:21:33 -0600 | received badge | ● Self-Learner (source) |
2017-02-20 05:20:16 -0600 | answered a question | Opencv_dnn >> can't load network ResNet-101 Good news everyone! ResNet layers have been added! |
2017-02-20 05:16:35 -0600 | answered a question | Trying to load a .mp4 Video fails Install cmake-gui and try to generate make file for the opencv build by it. You can see if ffmpeg support is enabled or not. |
2017-02-20 05:02:02 -0600 | answered a question | how can i play video Playback video in the window with the fps from the file metainfo, filename passed as 2'nd cmd argument: You want take into account processing time? So, let's slightly change the code: |
2017-02-20 04:43:23 -0600 | answered a question | Why does findcontours crash the program in Qt? There is several stanges/issues/bugs in your code:
|
2017-02-20 02:59:43 -0600 | answered a question | the dtype of read image Use Mat::convertTo(...) function. |
2017-02-20 02:55:44 -0600 | commented question | open cv for thermal image Can you provide the samples of the such images and show result that you want to get on them? |
2017-01-30 08:37:52 -0600 | answered a question | I sometimes get the below access violation error when running any of my OpenCV programs such as the simple one below. I do not know why exeption is thrown, but suggest to call waitKey in the right way: |
2017-01-30 08:27:59 -0600 | answered a question | Distributed Face Recognition You can use the client-server architecture for your system. Client side should be started on the Raspberry and make three things: 1) Detect and track the faces on the video; 2) When new face wil be detected, send it's image to the recognition server; 3) Wait repeat from the server and do what you want to do on the Raspberry. Whereas, the server side should be started on PC with good enough performance and just wait the recognition tasks from the clients. Some time ago I have developed all parts of very similar solution on Opencv and Qt. |
2017-01-30 08:11:17 -0600 | answered a question | OpenCV 3.2 Visual Studio .dlls missing Just copy opencv_world320.dll from the design machine to the directory with the application's exe on the target machine. |