infinitenothing
-
Posts
367 -
Joined
-
Last visited
-
Days Won
15
Content Type
Profiles
Forums
Downloads
Gallery
Posts posted by infinitenothing
-
-
Since you are storing the data uncompressed, maybe you can just write 2D arrays to disk using Write to Binary File
-
What kind of throughput do you need? You could consider some sort of custom serial or parallel interface.
-
That makes sense. Let me throw out an idea:
So you're trying to find the coefficients in this formula: Z=a1x+a2y+C. You might be able to use this: http://zone.ni.com/reference/en-XX/help/371361H-01/gmath/general_ls_linear_fit/
Where Y is an array of all the pixel intensities and H is {x1,y1,c}, ...
You might want to use real world coordinates instead of pixel coordinates.
-
A tilted circle projects to an ellipse right?
http://zone.ni.com/reference/en-XX/help/370281M-01/imaqvision/imaq_fit_ellipse_2/
Not sure about the general solution but maybe something involving this solver
http://zone.ni.com/reference/en-XX/help/371361J-01/gmath/find_all_minima_nd/
-
You might have to show us some pictures. It sounded like you had some edge detection which should give you points that make a circle on the edge of the cylinder. You can use a circle fit to get the radius which will give you an area. If you need, you can take an average inside the circle to get the height of the cylinder.
-
-
Thanks everyone, for the insightful discussion. I agree that it's most sensible to perform cleanups even if an error occurred, and the Network Stream example sounds like a design flaw.
Aside from cleanups though, I can't think of any other good cases which should run regardless of error -- do you guys do this in non-cleanup code?
As for accessors, I agree that read VIs for a simple number shouldn't have error I/O terminals. I still put them in write VIs though -- I avoid modifying my object's state if an error occurred beforehand. Does anyone feel strongly against this?
Any sort of inter-module communication will have certain messages that you want to get across regardless of the error.
-
I don't think you attached code as you had intended but have you considered putting a case structure in your <0.6 case that would trigger in a range. You could use the "In Range and Coerce" function and wire the "In Range?" output to the inner case selector.
-
Relevant idea
At the very least it should be in the context help when I hover over that terminal.
-
Yeah, I've seen it mutate even without changing platforms. They are delicate.
-
I tried this in 8.6 and I got the same behavior. Not sure what's up with 2009.
-
Over by 5. I'm still impressed.
-
-
The distinction was where they were implemented. If the memory is implemented higher up, its easier to unit test the lower level VIs.
-
No. Something happens after the false case runs. The VI returns default data for all its unwritten indicators. The moral of the story is to not use controls or indicators as memory storage. The preferred memory storage unit is a shift register in the test vi. A feedback node in the subVIs is the next best thing.
-
Maybe explain how you fixed it for future visitors. https://xkcd.com/979/
You might phrase it differently. It's hard for us to think from the perspective of someone that's lost.
- 1
-
I have sent out a "xmodem" in a string with carriage return.
Why?
I am sniffing the transmit out of my UART. The UART transmit line then continuously sends a negative acknowledgement (NAK).
Am I on the right track?
Doubtful. Did you try what I suggested above?
-
And since you don't have type safety, if you have multiple state machine threads, you have to be careful to keep your queues straight and not send your message down the wrong pipe.
-
Wait for a "C" from the receiver and then run "Xmodem Send.vi"
-
Did you see how I was trying to stop it? The front panel reference dies when you close the probe and the property node throws an error.
- 1
-
- Popular Post
- Popular Post
-
Thanks for the reply! I have a couple different ROIs set up and I am measuring the amount of space inside the box that the "white stuff" occupies. (see the image below) I was a little vague about how I am actually doing the thresholding. In short, I am not just using the threshold vi and hoping for the best. I am trying to use an algorithm (using the Gaussian mixture model) that dynamically changes but like you said, with the lighting/contrast/brightness of the image always changing it does not always perform that well, whereas the edge detection seems to always find the correct edges.
I suppose I was hoping I could use the edge detection as the base for some kind of mask or something...
What happens when you threshold your "edges" image? Can you just use particle analysis to "fill holes" on that img?
Alt path: It looks like a regular threshold should work on your ROIs if you manually select the threshold right? Maybe do an erosion to get rid of the small particles? If that's the case maybe you can find some safe areas where you know there won't be any white? The corners maybe? Use that to set your threshold.
-
Can you tell us a bit more about what your desired measurement is? Are you just trying to get the area of the white stuff? Usually, you want to make this work as easy as possible for the software (crap in crap out principle) so you want to control the lighting and have a fixed ROI. Secondly you might want to use an auto threshold method so that it dynamically changes if the lighting control isn't perfect. Third, you'll notice the top of your image is much darker than the bottom. Your eyes are really good at subtracting shadows. Here's an example illusion based on that effect. You'll need have a different threshold for different parts of the image (preferably a gradient) to compensate for this.
-
Since you're facing a "cosmetic" issue, string manipulation seems OK. If you need rounding, you'll have to get really clever and maybe count how many characters exist to the left of the decimal and use number to fractional string.
How to correctly use the outputs of Gaussian Peak Fit?
in LabVIEW General
Posted
Someone should make a internet drop box type app for conversion. Until then, there's always http://forums.ni.com/t5/Version-Conversion/bd-p/VersionConversion.
I've taken it back to 2009.