IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> CCD线阵相机彩色图像校正方法 -> 正文阅读

[人工智能]CCD线阵相机彩色图像校正方法

转载于:https://blog.csdn.net/y459541195
软件解决CCD线阵相机彩色图像校正方法
一、主要方法步骤
1.相机上电,打开光源
2.光圈为2
3.行频为工况行频
4.增益ALL为1,绿色为1。
5.使用白色漫反射板
6.图像格式为RGB8,图像大小设为为4096100
7.调整曝光时间,使图片绿色通道不过曝,且平均值在200左右,记录此时的曝光时间,用于工况。
8.分别调整红蓝增益,使红色和蓝色像素的均值与绿色通道基本一致,记录此时的红蓝增益,用于工况。
9.保存图像,文件名为001.BMP
10.调整增益ALL为工况下的增益。
11.在程序中使用001.BMP
12.001.BMP拆成RGB三通道
13.以绿色通道为例,对BMP的每一列(高度方向)求均值,取整。得到4096
1的数据
14.对这个数据再求MAX值,然后再转化为最大值为255的行,数据为40961。
15.实时采集得到一张图像,对G通道进行修正。
16.修正方法为每个像素的G值
255/对应列的修正值,不超过255。
17.红蓝通道参考绿色通道进行调整。
18.将所计算后的校正系数存起来,采集彩色图像处理计算前,可先进行校正再处理。

代码如下:

`//

#include “stdafx.h”
#include <opencv2/opencv.hpp>
#include <highgui/highgui.hpp>
#include
#include<math.h>
#include
#include
#include <opencv2\imgproc\types_c.h>
#include <ctype.h>
#include<windows.h>
#include
#include

using namespace std;
using namespace cv;

Mat src,img,srcresize,imgresize,dst;
String input_path = “E:\…\work\001.bmp”;//标定过的图
String input_path_src = “E:\…\work\*.bmp”;//待修正图

const char* src_dst = “原图修正后”;
const char* src_input = “原图”;

int _tmain(int argc, _TCHAR* argv[])
{

img = imread(input_path);
src = imread(input_path_src);
if (!src.data)
{
    printf("could not load image ... \n");
    return -1;
}

dst.create(src.size(), src.type());

/**********************通道求均值***************************/
vector<int> pImgVector;
//对标定图像列求均值
for (int col = 0; col < img.cols;col++)
{

    Mat colRange = img.colRange(col, col + 1);
    Scalar meanImg = mean(colRange);
    //cout << "meanImg:" << meanImg << endl;
    double dImg = (meanImg[0] + meanImg[1] + meanImg[2]) / 3;
    //cout << "dImg:" << dImg << endl;
    pImgVector.push_back(dImg);
}
vector<int>::iterator biggestImg = max_element(begin(pImgVector), end(pImgVector));
//cout << "pImgVector最大值:" << *biggestImg<<endl;

vector<double> pImgCoefficient;

for (int i = 0; i < pImgVector.size(); i++)
{
    double pImgElement = (double)*biggestImg / (double)pImgVector[i];
    std::cout << setiosflags(ios::fixed) << setprecision(2);//打印两位小数
    //std::cout << "pBlueElement:" << pImgElement << endl;
    pImgCoefficient.push_back(pImgElement);

}

//系数写入txt,提取系数可打开注释
/*ofstream fout;
fout.open("D:\\...\\coefficient.txt",ios_base::out);
if (fout.is_open())
{
    for (vector<double>::iterator i = pImgCoefficient.begin(), end = pImgCoefficient.end(); i != end; ++i)
    {
        fout << (*i)<<",";
    }
}
fout.close();*/

for (int row = 0; row < src.rows; row++)
{
    for (int col = 0; col < src.cols; col++)
    {

        int b = src.at<Vec3b>(row, col)[0];
        int g = src.at<Vec3b>(row, col)[1];
        int r = src.at<Vec3b>(row, col)[2];
        int dBlue = b*pImgCoefficient[col];
        int dGreen = g*pImgCoefficient[col];
        int dRed = r*pImgCoefficient[col];
    /*    if (dBlue > 255)
        {
            std::cout << "dBlue" << dBlue << endl;
            dBlue = 255;
        }
        if (dGreen > 255)
        {
            std::cout << "dGreen" << dGreen << endl;
            dGreen = 255;
        }
        if (dRed > 255)
        {
            std::cout << "dRed" << dRed << endl;
            dRed = 255;
        }*/

        dst.at<Vec3b>(row, col)[0] = dBlue;
        dst.at<Vec3b>(row, col)[1] = dGreen;
        dst.at<Vec3b>(row, col)[2] = dRed;

    }
}
namedWindow(src_input, WINDOW_AUTOSIZE);
namedWindow(src_dst, WINDOW_AUTOSIZE);
imshow(src_input, src);
imshow(src_dst, dst);`

结果:
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:00:06  更:2021-10-17 12:02:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:40:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码