Skip to content

Instantly share code, notes, and snippets.

@immengineer
Last active August 15, 2017 04:48
Show Gist options
  • Save immengineer/209d6bca3cbbeee8c625798e95fbc8b9 to your computer and use it in GitHub Desktop.
Save immengineer/209d6bca3cbbeee8c625798e95fbc8b9 to your computer and use it in GitHub Desktop.
JAISDK PixelFormatを指定して画像取得 HanleImage
void HandleImage(ref Jai_FactoryWrapper.ImageInfo ImageInfo)
{
Jai_FactoryWrapper.EFactoryError error = Jai_FactoryWrapper.EFactoryError.Success;
// Set Measurement area (100 x 100 Pixel)
m_MeasureRect.Left = 100;
m_MeasureRect.Top = 100;
m_MeasureRect.Right = 200;
m_MeasureRect.Bottom = 200;
// 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);
// .. and then we can calculate the average value for the measurement ROI
error = Jai_FactoryWrapper.J_Image_GetAverage(ref m_ConversionBuffer, ref m_MeasureRect, ref Average);
if (myPixelFormatNode.Value.ToString().Contains("8 Bit"))
{
red = (int)Average.BGR48_R;
green = (int)Average.BGR48_G;
blue = (int)Average.BGR48_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;
}
@immengineer
Copy link
Author

8bit時はそのままintにcastするだけで良さそう

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment