Ріс.4.2.4
Всі гістограми також можна зберегти перейшовши в В«Меню-> Гістограма-> Збереження-> Сохраніть_ №В».
4.3 Зміна яскравості і контрастності зображення
Після завантаження зображення стануть доступними бігунки В«ЯскравістьВ» і В«КонтрастВ», при їх переміщенні відбуватиметься відповідно зміна яскравості і контрастності (ріс.4.3.1):
В
Ріс.4.3.1
4.4 бінаризації зображення
Перед початком бінаризації, необхідно вибрати поріг бінаризації, який можна встановити в полі поруч із кнопкою В«бінаризаціїВ» (ріс.4.4.1):
В
Ріс.4.4.1
Після вибору порогу і натискання на кнопку В«бінаризаціїВ» зображення буде перетворено і відображує в цьому ж вікні (ріс.4.4.2):
В
Ріс.4.4.2
void bBinary_Click (object sender, EventArgs e)
{picture = new Bitmap (pictureBox1.BackgroundImage); bitmap_data; bitmap_pixels;
{
// Блокуємо ділянку в памяті_data = picture.LockBits (new Rectangle (0, 0, picture.Width, picture.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
// Отримуємо покажчик на перший піксель_pixels = bitmap_data.Scan0; * bitmap_pbitS = (byte *) bitmap_pixels.ToPointer ();
// Вказуємо, що крапка буде займати 3 байтаbytes_per_pixel = 3; cc_binary = (byte) numericUpDown1.Value; cc_r, cc_g, cc_b, cc_bright; (int x = 0; x
{(int y = 0; y
{
// Обчислюємо покажчик на точку, яка відповідає координатам x, y * pixel_gr = (byte *) bitmap_pbitS + (y * bitmap_data.Stride) + (x * bytes_per_pixel);
// Прочитуємо 3 компоненти цвета_b = * pixel_gr; _g = * (pixel_gr + 1); _r = * (pixel_gr + 2);
// Обчислюємо яркость_bright = (byte) Math.Round (cc_b * 0.3f + cc_g * 0.59f + cc_r * 0.11f);
// Встановлюємо в пам'яті компоненти кольору (білий або чорний) (cc_bright> cc_binary)
{
* pixel_gr = 255; _gr + +;
* pixel_gr = 255; _gr + +;
* pixel_gr = 255;
}
{
* pixel_gr = 0; _gr + +;
* pixel_gr = 0; _gr + +;
* pixel_gr = 0;
}
}
}. UnlockBits (bitmap_data);. BackgroundImage = picture;
}}
4.5 Переклад зображення в градації сірого
Тут вже ніякого порога немає, тому для перекладу зображення в градації сіро...