拜耳色彩(basler相机sca750-60gc解析,仔细研究相机说明书成果c#)

今天拜耳与路遥相遇,是一种庆幸。

下面是研究成果,做以记录。相机ccd矩阵排列,请百度(或者下载baslersca750-60gc相机pdf),下面只有解析算法:

  //basler bayercolor
                for (int jj = 0; jj < hh; jj++)
                    for (int ii = 0; ii < ww; ii++)
                    {
                        int n = jj * grabResult.SizeX + ii;
                        int next = (jj + 1) * grabResult.SizeX + ii;
                        int pre = (jj - 1) * grabResult.SizeX + ii;
                        int k = jj * ww + ii;
                        int m = 3 * k;
                        //注意处理最后一行
                        if (jj != grabResult.SizeY - 1)//偶数行
                        {
                            if (jj % 2 == 0)
                            { //注意处理最后一列
                                if (ii == ww - 1)//偶数!
                                {
                                    bufercopy[m] = imgBuf.Array[next];//b
                                    bufercopy[m + 1] = imgBuf.Array[n];//g
                                    bufercopy[m + 2] = imgBuf.Array[n - 1];//r
                                }
                                else
                                {
                                    if (ii % 2 == 0)
                                    {
                                        //r,g 
                                        bufercopy[m] = imgBuf.Array[next + 1];//b
                                        bufercopy[m + 1] = imgBuf.Array[n + 1];//g
                                        bufercopy[m + 2] = imgBuf.Array[n];//r
                                    }
                                    else
                                    {
                                        //g,r
                                        bufercopy[m] = imgBuf.Array[next];//b
                                        bufercopy[m + 1] = imgBuf.Array[n];//g
                                        bufercopy[m + 2] = imgBuf.Array[n + 1];//r
                                    }
                                }
                            }
                            else
                            {
                                //注意处理最后一列
                                if (ii == ww - 1)//偶数
                                {
                                    bufercopy[m] = imgBuf.Array[n];//b
                                    bufercopy[m + 1] = imgBuf.Array[n - 1];//g
                                    bufercopy[m + 2] = imgBuf.Array[pre - 1];//r
                                }
                                else
                                {
                                    if (ii % 2 == 0)
                                    {
                                        //g,b
                                        bufercopy[m] = imgBuf.Array[n + 1];//b
                                        bufercopy[m + 1] = imgBuf.Array[n];//g
                                        bufercopy[m + 2] = imgBuf.Array[pre];//r
                                    }
                                    else
                                    {
                                        //b,g
                                        bufercopy[m] = imgBuf.Array[n];//b
                                        bufercopy[m + 1] = imgBuf.Array[n + 1];//g
                                        bufercopy[m + 2] = imgBuf.Array[pre + 1];//r 
                                    }
                                }
                            }
                        }
                        else
                        {

                            //注意处理最后一列
                            if (ii == ww - 1)//偶数
                            {
                                bufercopy[m] = imgBuf.Array[n];//b
                                bufercopy[m + 1] = imgBuf.Array[n - 1];//g
                                bufercopy[m + 2] = imgBuf.Array[pre - 1];//r 
                            }
                            else
                            {
                                if (ii % 2 == 0)
                                {
                                    //g,b
                                    bufercopy[m] = imgBuf.Array[n + 1];//b
                                    bufercopy[m + 1] = imgBuf.Array[n];//g
                                    bufercopy[m + 2] = imgBuf.Array[pre];//r 
                                }
                                else
                                {
                                    //b,g
                                    bufercopy[m] = imgBuf.Array[n];//b
                                    bufercopy[m + 1] = imgBuf.Array[n + 1];//g
                                    bufercopy[m + 2] = imgBuf.Array[pre + 1];//r 
                                }
                            }
                        }
                      }

///////////////////////////////////////////

  for (int j = 0; j < hh; j++)
                    for (int i = 0; i < ww; i++)
                    {
                        int n = j * ww + i;
                        int m = 3 * n;
                        glob_buffer8B[n] = bufercopy[m];//蓝色
                        glob_buffer8G[n] = bufercopy[m + 1];//绿色
                        glob_buffer8R[n] = bufercopy[m + 2];//红色
                    }

完毕,即将要进入灰色的冬季了,我用拜耳色彩来点亮他,继续前行。

待续(慢慢来!...........)每天一点小改变☺

我的邮箱[email protected];[email protected]

发布了66 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ganggangwawa/article/details/103111598