之前分析过FLIR DDE的测试图片不可能是真实的图片,而是一段测试数组,本文就通过简单的赋值方法,重现了FLIR的测试数据。
数据采用14位的采样数据标准,即2^14 16384范围。测试数据块都采用渐变的数据。
包括背景渐变(16384的中段5%范围渐变)
四个矩形区域渐变,分别为20%灰度 40%灰度 60%灰度 80%灰度。
五个细节区域渐变,考虑FLIR原文最终呈现的细节为亮色,所以,细节区域灰度从背景色的最大值开始。
最终结果如下:
AGC成像 完全看不到细节
HE可以看到中心细节 右上细节隐约可见
clear
close all
clc
picture = int16(zeros(512, 640));
% 16384 中间的640范围渐变填充背景
for i = 1:size(picture,1) % 行遍历
for j = 1:size(picture,2) % 列遍历
picture(i,j) = 7872 + j;
end
end
% 四个矩形
for i = 1:size(picture,1) % 行遍历
for j = 1:size(picture,2) % 列遍历
if (j > 64) && (j < 256) && (i > 50) && (i < 242) % 左上矩形
picture(i,j) = 6553 + j;
end
if (j > 384) && (j < 576) && (i > 50) && (i < 242) % 右上矩形
picture(i,j) = 9830 + j;
end
if (j > 128) && (j < 192) && (i > 357) && (i < 421) % 左下矩形
picture(i,j) = 3276 + j;
end
if (j > 448) && (j < 512) && (i > 357) && (i < 421) % 右下矩形
picture(i,j) = 13107 + j;
end
end
end
% 细节
for i = 1:size(picture,1) % 行遍历
for j = 1:size(picture,2) % 列遍历
if (j > 305) && (j < 311) && (i > 241) && (i < 271) % 中心细节
picture(i,j) = 8512;
end
if (j > 317) && (j < 323) && (i > 241) && (i < 271)
picture(i,j) = 8502;
end
if (j > 329) && (j < 335) && (i > 241) && (i < 271)
picture(i,j) = 8492;
end
if (j > 145) && (j < 151) && (i > 131) && (i < 161) % 左上细节
picture(i,j) = 6745;
end
if (j > 157) && (j < 163) && (i > 131) && (i < 161)
picture(i,j) = 6735;
end
if (j > 169) && (j < 175) && (i > 131) && (i < 161)
picture(i,j) = 6725;
end
if (j > 465) && (j < 471) && (i > 131) && (i < 161) % 右上细节
picture(i,j) = 10022;
end
if (j > 477) && (j < 483) && (i > 131) && (i < 161)
picture(i,j) = 10012;
end
if (j > 489) && (j < 495) && (i > 131) && (i < 161)
picture(i,j) = 10002;
end
if (j > 145) && (j < 151) && (i > 374) && (i < 404) % 左下细节
picture(i,j) = 3340;
end
if (j > 157) && (j < 163) && (i > 374) && (i < 404)
picture(i,j) = 3330;
end
if (j > 169) && (j < 175) && (i > 374) && (i < 404)
picture(i,j) = 3320;
end
if (j > 465) && (j < 471) && (i > 374) && (i < 404) % 右下细节
picture(i,j) = 13171;
end
if (j > 477) && (j < 483) && (i > 374) && (i < 404)
picture(i,j) = 13161;
end
if (j > 489) && (j < 495) && (i > 374) && (i < 404)
picture(i,j) = 13151;
end
end
end
figure;
subplot(1,2,1), imshow(picture), title('AGC');
subplot(1,2,2), imshow(histeq(picture)), title('HE');
复现了测试图片之后,接下就可以验证自己的算法效果了。