首页 > 解决方案 > 如何根据我的代码生成消隐和同步信号?

问题描述

我不知道如何为我的 PAL 信号生成消隐和同步信号。我直接使用图像中的像素值,并将它们放入标准的公式中。

我获取了像素 R、G 和 B 值并计算了亮度 Y。

我试图手动制作同步和消隐信号,但没有结果。

//load values

float[,] rValues = new float[picture1.Width, picture1.Height];

float[,] gValues = new float[picture1.Width, picture1.Height];

float[,] bValues = new float[picture1.Width, picture1.Height];

                using (Bitmap bmp = new Bitmap(picture1))
                {
                    for (int i=0;i<bmp.Width;i++)
                    {
                        for(int j=0;j<bmp.Height;j++)
                        {
                            Color clr = bmp.GetPixel(i, j);
                            rValues[i, j] = clr.R;
                            gValues[i, j] = clr.G;
                            bValues[i, j] = clr.B;
                        }
                    }
                }

//changing the matrices into 1d arrays


----------


double[] r = new double[picture1.Height * picture1.Width];

double[] g = new double[picture1.Height * picture1.Width];

double[] b = new double[picture1.Height * picture1.Width];

                int k = 0;
                for (int i = 0; i < picture1.Height; i++)
                {
                    for (int j = 0; j < picture1.Width; j++)
                    {
                        r[k] = rValues[j, i];
                        g[k] = gValues[j, i];
                        b[k] = bValues[j, i];
                        k++;
                    }
                }
// calculating the luminance Y
double[] Y = new double[picture1.Height * picture1.Width];

                for (int i=0; i < Y.Length; i++)
                {
                    Y[i] = 0.3 * r[i] + 0.59 * g[i] + 0.11 * b[i];
                }
// trying to make a manual signal
    double[] sync = new double[135];
            for (int i = 0; i < 135; i++)
            {
                if (i < 17)
                {
                    sync[i] = 0;
                }
                if (i > 16 && i < 70)
                {
                    sync[i] = -0.3;
                }
                if (i > 69)
                {
                    sync[i] = 0;
                }
            }

标签: c#signalsstandards

解决方案


推荐阅读