none
請問如何將攝影機的圖即時轉換成灰階影像 RRS feed

  • 問題

  • 我想將攝影機傳回來的畫面即時轉換成灰階圖片
    我的程式碼如下:
    它跑到
    pic_2.SetPixel(i, j, Color.FromArgb(gray2, gray2, gray2));
    就會出現
    對於具有索引像素格式的影像不支援 SetPixel
    請問是為什麼呢?

    this.webCamPictureBox1.Image = this.webCamPictureBox1.Image;
                    Bitmap pic_1 = (Bitmap)this.webCamPictureBox1.Image;
                    for (int i = 0; i < webCamPictureBox1.Width; i++)
                    {
                        for (int j = 0; j < webCamPictureBox1.Height; j++)
                        {
                            Color color = pic_1.GetPixel(i, j);//第一張灰階
                            int gray = (int)(color.R * 0.299 + color.G * 0.587 + color.B * 0.114);
                            pic_1.SetPixel(i, j, Color.FromArgb(gray, gray, gray));
                        }
                    }
                    //this.webCamPictureBox2.Image = this.webCamPictureBox1.Image;
                    Bitmap pic_2 = (Bitmap)this.webCamPictureBox2.Image;
                    for (int i = 0; i < webCamPictureBox2.Width; i++)
                    {
                        for (int j = 0; j < webCamPictureBox2.Height; j++)
                        {
                            Color color2 = pic_2.GetPixel(i, j);//第二張灰階
                            int gray2 = (int)(color2.R * 0.299 + color2.G * 0.587 + color2.B * 0.114);
                            pic_2.SetPixel(i, j, Color.FromArgb(gray2, gray2, gray2));
                        }
                    }



    2013年4月28日 上午 04:44

解答

  • SetPixel 是設定點的顏色。

    256 色是設定該點使用調色盤中的哪個索引值。

    最後,灰階圖要宣告為 Drawing.Imaging.PixelFormat.Format8bppIndexed

    • 已標示為解答 托爾 2013年4月30日 上午 10:34
    2013年4月29日 下午 01:17

所有回覆