Penjelasan terperinci tentang penukaran skala kelabu imej C#
Menukar imej kepada format skala kelabu ialah tugas pemprosesan imej yang biasa. Artikel ini akan meneroka cara menggunakan System.Drawing.Imaging.PixelFormat
penghitungan untuk melaksanakan penukaran skala kelabu dalam C#.
Format skala kelabu piksel 16-bit
Jika anda memerlukan imej skala kelabu dengan piksel 16-bit, anda boleh menggunakan pembina berikut:
<code class="language-csharp">Bitmap grayScaleBP = new System.Drawing.Bitmap(2, 2, System.Drawing.Imaging.PixelFormat.Format16bppGrayScale);</code>
Penukaran skala kelabu imej
Untuk menukar imej sedia ada (c) kepada imej skala kelabu (d) anda boleh menggunakan kod berikut:
<code class="language-csharp">Bitmap d; int x, y; // 循环遍历图像像素并将其颜色重置为灰度 for (x = 0; x < ...; x++) { for (y = 0; y < ...; y++) { // 灰度转换逻辑... } }</code>
(Kod penukaran skala kelabu khusus dalam badan gelung ditinggalkan di sini kerana teks asal tidak menyediakan kandungan isi gelung yang lengkap)
Kaedah penukaran skala kelabu yang lebih pantas
Berikut ialah kaedah penukaran skala kelabu imej yang lebih cekap:
<code class="language-csharp">public static Bitmap MakeGrayscale3(Bitmap original) { Bitmap newBitmap = new Bitmap(original.Width, original.Height); using (Graphics g = Graphics.FromImage(newBitmap)) { // 创建灰度ColorMatrix ColorMatrix colorMatrix = new ColorMatrix( new float[][] { new float[] {.3f, .3f, .3f, 0, 0}, new float[] {.59f, .59f, .59f, 0, 0}, new float[] {.11f, .11f, .11f, 0, 0}, new float[] {0, 0, 0, 1, 0}, new float[] {0, 0, 0, 0, 1} }); // 使用灰度ColorMatrix绘制原始图像 g.DrawImage(original, new Rectangle(0, 0, original.Width, original.Height), 0, 0, original.Width, original.Height, GraphicsUnit.Pixel, new ImageAttributes { ColorMatrix = colorMatrix }); } return newBitmap; }</code>
Kaedah ini menggunakan ColorMatrix
untuk melaksanakan penukaran skala kelabu, sekali gus meningkatkan prestasi.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Imej kepada Skala Kelabu dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!