Skip to content

Instantly share code, notes, and snippets.

@immengineer
Created August 16, 2017 02:54
Show Gist options
  • Select an option

  • Save immengineer/01afe125dea0e09e5edccac0bb501bd6 to your computer and use it in GitHub Desktop.

Select an option

Save immengineer/01afe125dea0e09e5edccac0bb501bd6 to your computer and use it in GitHub Desktop.
JAISDK Pixel値取得
void HandleImage(ref Jai_FactoryWrapper.ImageInfo ImageInfo)
{
Jai_FactoryWrapper.EFactoryError error = Jai_FactoryWrapper.EFactoryError.Success;
// Get average value and calculate new control parameters:
Jai_FactoryWrapper.PixelValue Average = new Jai_FactoryWrapper.PixelValue();
// Allocate conversion buffer once
if (m_ConversionBuffer.ImageBuffer == IntPtr.Zero)
error = Jai_FactoryWrapper.J_Image_Malloc(ref ImageInfo, ref m_ConversionBuffer);
// Then we convert into 48bpp image format
error = Jai_FactoryWrapper.J_Image_FromRawToImage(ref ImageInfo, ref m_ConversionBuffer, Jai_FactoryWrapper.EColorInterpolationAlgorithm.BayerStandardMultiprocessor, 4096, 4096, 4096);
// Get PixelValue
Jai_FactoryWrapper.POINT p = new Jai_FactoryWrapper.POINT(100, 100);
error = Jai_FactoryWrapper.J_Image_GetPixel(ref m_ConversionBuffer, ref p, ref Average);
if (myPixelFormatNode.Value.ToString().Contains("8 Bit"))
{
red = (int)Average.RGB24_R;
green = (int)Average.RGB24_G;
blue = (int)Average.RGB24_B;
}
else if (myPixelFormatNode.Value.ToString().Contains("10 Bit"))
{
red = (int)(Average.BGR48_R & 0xFFC0) >> 6;
green = (int)(Average.BGR48_G & 0xFFC0) >> 6;
blue = (int)(Average.BGR48_B & 0xFFC0) >> 6;
}
else if (myPixelFormatNode.Value.ToString().Contains("12 Bit"))
{
red = (int)(Average.BGR48_R & 0xFFF0) >> 4;
green = (int)(Average.BGR48_G & 0xFFF0) >> 4;
blue = (int)(Average.BGR48_B & 0xFFF0) >> 4;
}
return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment