[meta-freescale] Using OpenCV and OpenGL together

Fikret Alim fikret.alim at gmail.com
Thu Dec 19 06:47:39 PST 2013


Dear Andre,

I am using OpenCV 2.4 and I am sure that OpenCV correctly sets the
resolution, because if I comment out everything related to OpenGL and add
and imshow command after capturing the image with OpenCV, there is no
proble, I can see the video resolution as expected. So, I think that the
problem is related to OpenGL part of the code.

Thanks,
Fikret


On Thu, Dec 19, 2013 at 4:40 PM, Andre Silva <Andre.Silva at freescale.com>wrote:

>  Hi Friket,
>
>
>
> Which OpenCV version are you using ? I remember 1.1 had an issue with
> setting the camera resolution using these functions, I usually needed to
> set it directly in CV´s code and then recompiling all the lib.
>
>
>
> Regards,
>
> andre
>
>
>
> *From:* Fikret Alim [mailto:fikret.alim at gmail.com]
> *Sent:* Thursday, December 19, 2013 11:56 AM
> *To:* Silva Andre-B22958
> *Cc:* Fabio Estevam; meta-freescale at yoctoproject.org
>
> *Subject:* Re: [meta-freescale] Using OpenCV and OpenGL together
>
>
>
> Hi Andre,
>
>
>
> There are only two places that I change for the resolution inside the
> code. This first one is capture resolution that openCV uses, the other one
> is glTexImage2D function. I only modify them for the resolution and I don't
> see any other functions that can be related to resolution.
>
>
>
> cap.set(CV_CAP_PROP_FRAME_WIDTH, 320);
>
> cap.set(CV_CAP_PROP_FRAME_HEIGHT, 240);
>
>
>
> glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 320, 240, 0, GL_RGB,
> GL_UNSIGNED_BYTE, bgr_img.data);
>
>
>
> The strange thing is; if I set 160x120, 320x240 and even 320x320
> resolutions, I don't see any problem. But if I set higher resolutions such
> as 640x480, 800x600 or 1024x768, etc., I got segmentation fault. Do you
> have a recommendation for me where and what to check inside the code?
>
>
>
> Thanks,
>
> Fikret
>
>
>
> On Thu, Dec 19, 2013 at 1:55 PM, Andre Silva <Andre.Silva at freescale.com>
> wrote:
>
> Hi Fikret,
>
>
>
> I believe that there are another functions in the code using this
> resolution, if you change the resolution without modifying these other
> parts the segfault will occur. The only limitation using 320x240 is the
> performance, since OpenCV runs on cpu, if we use higher resolution the
> performance will decrease a lot.
>
>
>
> Regards,
>
> andre
>
>
>
> *From:* Fikret Alim [mailto:fikret.alim at gmail.com]
> *Sent:* Thursday, December 19, 2013 5:40 AM
> *To:* Fabio Estevam
> *Cc:* meta-freescale at yoctoproject.org; Silva Andre-B22958
> *Subject:* Re: [meta-freescale] Using OpenCV and OpenGL together
>
>
>
> Dear Marek,
>
>
>
> Thank you for your answer,
>
>
>
> I will check the file you sent. I have solved the problem in a different
> way, I am not sure if this is the correct way or not, but at least it
> worked after this change:
>
>
>
> I have only moved the following two lines from PlaneCreateTex function to
> PlaneSetTex function.
>
>
>
>  glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
>  glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
>
>
>
> Then, PlaneSetTex function will be;
>
>
>
> void PlaneSetTex (Mat texture_data)
> {
>  cvtColor (texture_data, _texture_data, CV_BGR2RGB);
>  //imshow("_texture_data",_texture_data);
>  glBindTexture(GL_TEXTURE_2D, _texture);
>  glTexImage2D (GL_TEXTURE_2D, 0, GL_RGB, 320, 240, 0, GL_RGB,
> GL_UNSIGNED_BYTE, _texture_data.data);
>  glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
>  glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
> }
>
>
>
> With this change, now I can run Andre's gesture recognition example, and
> also I have tried some GLSL shaders for image processing like sobel
> detection.
>
>
>
> But, let me ask a different question: Is there a limition for the webcam
> resolution? I can only use 320x240 resolution for both Andre's example and
> gpu sdk examples. If I set a higher resolution, then I get segmentation
> fault error. I am sure that my webcam supports higher resolutions, since I
> can get video with openCV at higher resolutions. What can be wrong? Is
> there a limitation, or do I need to perform some other operations for
> higher resolutions?
>
>
>
> Thanks&Best Regards,
>
> Fikret
>
>
>
> On Wed, Dec 18, 2013 at 8:18 PM, Fabio Estevam <festevam at gmail.com> wrote:
>
> On Wed, Dec 11, 2013 at 12:18 PM, Fikret Alim <fikret.alim at gmail.com>
> wrote:
> > Hello,
> >
> >
> >
> > I am trying to use OpenCV and OpenGL together for some image processing
> > tasks. I have already run OpenCV examples on IMX6, I can also compile and
> > run the examples under gpu sdk of Freescale with X11, but when I try to
> use
> > them together I have some problems.
> >
> >
> >
> > Actually, what I am trying to make has already been done by Freescale
> >
> > http://imxcv.blogspot.com/2012/03/gesture-recognition-on-imx6.html
>
> Adding Andre.
>
> Regards,
>
> Fabio Estevam
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-freescale/attachments/20131219/b3db651f/attachment.html>


More information about the meta-freescale mailing list