.NET 4.x Найти разницу трех чёрно-белых изображений - C#
Формулировка задачи:
Есть входные четыре черно белые изображения. Помогите найти разницу интенсивностей І0 = І1-І2-І3 и Iz = I1-I2-I4 и вывести на экран новые два изображения
Решение задачи: «.NET 4.x Найти разницу трех чёрно-белых изображений»
textual
Листинг программы
public unsafe CImage(string fileName)
{
Bitmap bitmap = new Bitmap(fileName);
Size correctSize = new Size(
(int)Math.Pow(2, Math.Ceiling(Math.Log(bitmap.Width, 2))),
(int)Math.Pow(2, Math.Ceiling(Math.Log(bitmap.Height, 2))));
if (correctSize != bitmap.Size)
{
bitmap = new Bitmap(bitmap, correctSize);
}
_size = correctSize;
_data = new ComplexF[this.Width * this.Height];
Rectangle rect = new Rectangle(0, 0, this.Width, this.Height);
BitmapData bitmapData = bitmap.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
int* colorData = (int*)bitmapData.Scan0.ToPointer();
for (int i = 0; i < this.Width * this.Height; i++)
{
Color c = Color.FromArgb(colorData[i]);
_data[i].Re = ((float)c.R + (float)c.G + (float)c.B) / (3f * 256f);
}
bitmap.UnlockBits(bitmapData);
}