【发布时间】:2022-07-31 04:54:12
【问题描述】:
他们给学校布置了这个作业。我找了两天没找到。在我的应用程序中,从计算机中选择的图像应该从rgb 转换为yuv 并转换为灰色。
我在下面进行了yuv的转换,但是还有2个缺失,所以我无法转换为double,所以我做了一个int。颜色不是灰色的。
private void btn_piksel_Click(object sender, EventArgs e) { if (pct_goruntu.Image == null) return;
Bitmap goruntu = (Bitmap)pct_goruntu.Image;
Color ilkPiksel = goruntu.GetPixel(0, 0);
int genislik = goruntu.Width;
int yukseklik = goruntu.Height;
Bitmap yeniGoruntu = new Bitmap(genislik, yukseklik);
for (int sutun = 0; sutun < genislik; sutun++)
{
for (int satir = 0; satir < yukseklik; satir++)
{
Color piksel = goruntu.GetPixel(sutun, satir);
double Y = (0.257 * piksel.R) + (0.504 * piksel.G) + (0.098 * piksel.B) + 16;
double U = (-0.148 * piksel.R) + (-0.291 * piksel.G) + (0.439 * piksel.B) + 128;
double V = (0.439 * piksel.R) + (-0.368 * piksel.G) + (-0.071 * piksel.B) + 128;
Color hedefPiksel = Color.FromArgb(piksel.A, (int)Y, (int)U, (int)V);
yeniGoruntu.SetPixel(sutun, satir, hedefPiksel);
}
}
pct_hedef.Image = yeniGoruntu;
lbl_kirmizi.Text = "R: " + ilkPiksel.R.ToString();
lbl_yesil.Text = "G: " + ilkPiksel.B.ToString();
lbl_mavi.Text = "B: " + ilkPiksel.G.ToString();
}`
【问题讨论】:
-
this 是否可以帮助将 RGB 图像转换为 YUV?
-
是的,它可以提供帮助
标签: c# image visual-studio rgb yuv