Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何读取10位原始图像?其中包含RGB-IR数据_Python_Matlab_Numpy_Image Processing - Fatal编程技术网

Python 如何读取10位原始图像?其中包含RGB-IR数据

Python 如何读取10位原始图像?其中包含RGB-IR数据,python,matlab,numpy,image-processing,Python,Matlab,Numpy,Image Processing,我想知道如何从我的10位原始数据(它有rgb ir imagedata)中提取rgb图像 如何用Python或MATLAB阅读 拍摄时的相机分辨率为1280x720: 室内照片 户外照片 摄像机型号:e-CAM40_CUMI4682_MOD 非常感谢我使用了以下图像处理阶段: 拜耳马赛克彩色通道分离 线性拉伸每个颜色通道 简单白平衡 将红外颜色通道替换为绿色(将图像转换为标准拜耳格式) 恢复拜耳马赛克 简单的伽马校正 德莫萨奇 我没有处理红外颜色通道,而是将其替换为绿色通道 根据您添加的RG

我想知道如何从我的10位原始数据(它有rgb ir imagedata)中提取rgb图像

如何用Python或MATLAB阅读

拍摄时的相机分辨率为1280x720: 室内照片 户外照片

摄像机型号:e-CAM40_CUMI4682_MOD


非常感谢

我使用了以下图像处理阶段:

  • 拜耳马赛克彩色通道分离
  • 线性拉伸每个颜色通道
  • 简单白平衡
  • 将红外颜色通道替换为绿色(将图像转换为标准拜耳格式)
  • 恢复拜耳马赛克
  • 简单的伽马校正
  • 德莫萨奇
我没有处理红外颜色通道,而是将其替换为绿色通道

根据您添加的RGB图像,我找到了订单。
CFA(滤色器阵列)顺序为:

B | G
-- --
IR| R
以下Matlab代码将图像处理为RGB:

srcN=1280;
srcM=720;
f=fopen('image_raw.raw','r');
%读取为转置矩阵维度,并转置矩阵。
%原因是Matlab内存oreder是列主程序,并且
%原始图像存储在主行中(如C数组)。
I=fread(f,[srcN,srcM],'uint16');
fclose(f);
I=I′;
%从范围[0,1023]转换为范围[0,1](以双图像格式工作)。
I=I/(2^10-1);
%拜耳镶嵌色通道分离
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%假设输入格式为GBRG拜耳马赛克格式。
%分离颜色组件。
B=I(1:2:end,1:2:end);
G=I(1:2:end,2:2:end);
IR=I(2:2:结束,1:2:结束);
R=I(2:2:end,2:2:end);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%线性拉伸每个颜色通道。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%线性streatch蓝色通道。
B=imadjust(B,stretchlim(B[0.020.98]),[]);
%线性streatch绿色通道。
G=imadjust(G,stretchlim(G[0.020.98]),[]);
%线性streatch红色通道。
R=imadjust(R,stretchlim(R[0.02 0.98]),[]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%简单白平衡
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%中位数或R、G和B。
rgb_med=[中位数(R(:)、中位数(G(:)、中位数(B(:))];
rgb_比例=最大值(rgb_-med)。/rgb_-med;
%缩放每个颜色通道,使其具有相同的中间值。
R=R*rgb_标度(1);
G=G*rgb_标度(2);
B=B*rgb_标度(3);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%恢复拜耳马赛克。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%将拉伸的颜色通道插入I。
I(1:2:end,1:2:end)=B;
I(1:2:end,2:2:end)=G;
%I(2:2:end,1:2:end)=G;%将IR替换为绿色。
I(2:2:end,2:2:end)=R;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%将IR替换为绿色-首先将绿色大小调整为图像的完整大小。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
T=imresize(G[srcM,srcN]);%T-临时绿色,尺寸1280x720
I(2:2:end,1:2:end)=T(2:2:end,1:2:end);%将IR替换为绿色。
I=最大值(最小值(I,1),0);%将I限制在范围[0,1]内。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%简单伽马校正
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
γ=0.45;
I=I.^gamma;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%德莫萨奇
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%转换为uint8(范围[0255])。
I=uint8(圆形(I*255));
RGB=demosaic(I,“bggr”);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
imshow(RGB);
结果:

现在颜色正常了


室外图像处理:

对室外图像进行“室内”处理,得到如下结果:

白树是近红外光谱穿透R、G和B像素(不仅仅是红外像素)的标志。
植被的叶绿素在近红外光谱中具有高反射。请参阅:,然后在谷歌上搜索。
需要从红色、绿色和蓝色通道中减去IR



我使用了以下图像处理阶段:

  • 拜耳马赛克彩色通道分离
  • 从红色、绿色和蓝色通道中减去红外“剩余”。
  • 线性拉伸每个颜色通道
  • 简单白平衡
  • 恢复拜耳马赛克
  • 简单的伽马校正
  • Demosaic
  • 调整RGB图像的大小以降低分辨率
以下Matlab代码将室外图像处理为RGB:

srcN=1280;
srcM=720;
f=fopen('ir_6.raw','r');
%读取为转置矩阵维度,并转置矩阵。
%原因是Matlab内存oreder是列主程序,并且
%原始图像存储在主行中(如C数组)。
I=fread(f,[srcN,srcM],'uint16');
fclose(f);
I=I′;
%从范围[0,1023]转换为范围[0,1](以双图像格式工作)。
I=I/(2^10-1);
%拜耳镶嵌色通道分离
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%假设输入格式为GBRG拜耳马赛克格式。
%分离颜色组件。
B=I(1:2:end,1:2:end);
G=I(1:2:end,2:2:end);
IR=I(2:2:结束,1:2:结束);
R=I(2:2:end,2:2:end);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%从R、G和B中减去IR“盈余”。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%通过试错法对系数进行了调整。。。
ir_r=1.3;%130%的红外辐射被红色像素吸收???
ir_g=0.35;%35%的红外辐射被绿色像素吸收。
ir_b=0.3;%30%的红外辐射被蓝色像素吸收。
IR=imresize(IR,大小(I));%将IR的大小调整为