I'm running LabVIEW 2016 32-bit with Vision Development Module 2016. I've noticed some weird behavior when using IMAQ Multiply, when I multiply an 8-bit color plane by a constant. The constant is a 64-bit double by default, and intermittently, when I multiply by 1.00 or 2.00 or 3.00 or 4.00, sometimes it seems to not do the multiply, but if I multiply by 3.99 or 4.01, it works just fine. It's as if certain integer constants are intermittently being treated differently than if I do +/- a small amount. For 1.0, sometimes I was ending up with a blank image, whereas if I did 0.99 or 1.01, it worked just fine. I also had better luck if I change the constant from a double (64-bit) to a float (32-bit). I could not find any other posts describing this behavior. I most often see it at higher multipliers, such as 5.0.
For example code, I'm able to see the issue in this example code here, if I change the representation of the R G B gains to show trailing Zeros, and change representation to be Double from Single (I've also attached the file):
https://forums.ni.com/t5/Example-Programs/IMAQ-RGB-Hue-and-Color-Manipulation/ta-p/3501899
Attached are screenshots of the blue color plane with a multiplier of 4.9, which looks fine. Then here it is with a multiplier of 5.0, which appears darker (it's treating it like a multiplier of 4.0, even though it should be 5.0). And finally, here it is with a multiplier of 5.1, which again is correct. So here we have 5.0 being treated as something that's darker, around 4.0. I've also included a 4.0 multiplier and that is the same intensity as the bad 5.0 multiplier.
This behavior seems intermittent, and does not show up nearly as often, or at all, with single precision. But the IMAQ Multiply has 64-bit Double as the data type for the constant, so not sure why that would be an issue. I have not tried rebooting or restarting LabVIEW yet, but this should not happen. I also don't see any errors out from any of the subVIs when debugging.