Code Monkey home page Code Monkey logo

Comments (4)

kmcgrathgenerate avatar kmcgrathgenerate commented on July 3, 2024

I believe I may have found the issue. I am using a DisplayLink docking station that may be maxed out on data output. I have 2 4K monitors with the DMK camera into the USB3.0 port. I brought this camera to another setup and the horizontal lines were not present.

from ic-imaging-control-samples.

TIS-Stefan avatar TIS-Stefan commented on July 3, 2024

Question 1)
I suggest to set a valid frame rate, because the camera wont deliver 5000 fps at 720x100 resolution. You may use IC Capture to see, what is the maximum frame rate offered at this resolution. Then you may use somewhat slower frame rate and check the images.
The posted image does not look like the usual USB (2) Bandwidth issues, the pattern is far to regular. You may try with IC Capture too and compare the images.

Question 2)
RGB24 is the default pixel format in memory. Please call
ic.IC_SetFormat(hGrabber, tis.SinkFormats.Y800)
before starting the pipeline. Then you will have one byte per pixel gray scale in memory, as provided by the camera.

Stefan

from ic-imaging-control-samples.

kmcgrathgenerate avatar kmcgrathgenerate commented on July 3, 2024

@TIS-Stefan Thank you for the quick response. I set the video format based on your response to question 2, not sure if you were expecting this but, the horizontal lines are all gone now.

image

In the function call, ic.IC_SetVideoFormat(self.hGrabber, tis.T("Y800 ({width}x{height})".format(width=self.width, height=self.height))), it appears you set the Y800 here, if I remove this Y800 from the string, the width/height is not set, so it seems like it is needed. I am curious why its in the SetVideoFormat call but doesn't seem to set the color format.

Also in the same vein, is there a better way to change the width/height on the fly other than stopping the live feed, setting the video format, and turning it back on?

from ic-imaging-control-samples.

TIS-Stefan avatar TIS-Stefan commented on July 3, 2024

if I remove this Y800 from the string, the width/height is not set, so it seems like it is needed. I am curious why its in the SetVideoFormat call but doesn't seem to set the color format.

Yes, "Y800" is needed, otherwise we do not know, which pixel format to set in the camera.
The default format in the sink, which means the memory in the computer, is RGB24. That means, the incoming Y800 of the camera is converted to RGB24 internally. But the pixel format in memory can be changed to Y800 by
ic.IC_SetFormat(hGrabber, tis.SinkFormats.Y800)
before starting the live stream. Y800 means one byte per pixel gray scale.

Also in the same vein, is there a better way to change the width/height on the fly other than stopping the live feed, setting the video format, and turning it back on?

No, because the memory allocations in the DirectShow filter graph must be done and this is possible only by stopping and starting it. Same is valid for the camera. It must be stopped too, in order to change the video format and frame rate.

from ic-imaging-control-samples.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.