GDCM memo 2
YBR_FULL_422の画像
- string photometricInterpretation = ds.GetDataElement(new gdcm.Tag(0x00280004)).GetValue().toString();
- byte* pBmpData = (byte*)_bmpData.Scan0;
- if (photometricInterpretation == "YBR_FULL_422")
- {
- fixed (byte* pData = _pixelData)
- {
- byte* ybr = pData;
- for (int y = 0; y < _rows; y++)
- {
- for (int x = 0; x < _columns; x++)
- {
- int Y = ybr[0] - 16;
- int Cb = ybr[1] - 128;
- int Cr = ybr[2] - 128;
- int r = ((298 * Y + 409 * Cr + 128) / 256);
- int g = ((298 * Y - 100 * Cb - 208 * Cr + 128) / 256);
- int b = ((298 * Y + 516 * Cb + 128) / 256);
- pBmpData[2] = (byte)(r < 0 ? 0 : (r > 255 ? 255 : r));
- pBmpData[1] = (byte)(g < 0 ? 0 : (g > 255 ? 255 : g));
- pBmpData[0] = (byte)(b < 0 ? 0 : (b > 255 ? 255 : b));
- pBmpData += 3;
- ybr += 3;
- }
- pBmpData += padding;
- }
- }
- }
0 件のコメント :
コメントを投稿