Skip to content

Commit 697f9af

Browse files
committed
Channel 224 support implemented
1 parent edde111 commit 697f9af

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

main.cpp

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,54 @@ int main(int argc, char* argv[]) {
188188
imagesToSpread.push_back(ImageForSpread(ThreatImage::addRainOverlay(irImage, rainOverlay), "rain_IR_"));
189189
}
190190

191+
} else if(meteorDecoder.isChannel64Available() && meteorDecoder.isChannel65Available() && meteorDecoder.isChannel67Available()) {
192+
cv::Mat ch64 = meteorDecoder.getChannelImage(PacketParser::APID64, mSettings.fillBackLines());
193+
cv::Mat ch65 = meteorDecoder.getChannelImage(PacketParser::APID65, mSettings.fillBackLines());
194+
cv::Mat ch67 = meteorDecoder.getChannelImage(PacketParser::APID67, mSettings.fillBackLines());
195+
cv::Mat irImage = meteorDecoder.getChannelImage(PacketParser::APID67, mSettings.fillBackLines());
196+
197+
cv::Mat rainRef = cv::imread(mSettings.getResourcesPath() + "rain.bmp");
198+
cv::Mat rainOverlay = ThreatImage::irToRain(irImage, rainRef);
199+
200+
saveImage(mSettings.getOutputPath() + fileNameDate + "_64.bmp", ch64);
201+
saveImage(mSettings.getOutputPath() + fileNameDate + "_65.bmp", ch65);
202+
saveImage(mSettings.getOutputPath() + fileNameDate + "_67.bmp", ch67);
203+
204+
cv::Mat thermalRef = cv::imread(mSettings.getResourcesPath() + "thermal_ref.bmp");
205+
cv::Mat thermalImage = ThreatImage::irToTemperature(irImage, thermalRef);
206+
imagesToSpread.push_back(ImageForSpread(thermalImage, "thermal_"));
207+
208+
irImage = ThreatImage::invertIR(irImage);
209+
irImage = ThreatImage::gamma(irImage, 1.4);
210+
irImage = ThreatImage::contrast(irImage, 1.3, -40);
211+
irImage = ThreatImage::sharpen(irImage);
212+
imagesToSpread.push_back(ImageForSpread(irImage, "IR_"));
213+
214+
if(mSettings.addRainOverlay()) {
215+
imagesToSpread.push_back(ImageForSpread(ThreatImage::addRainOverlay(irImage, rainOverlay), "rain_IR_"));
216+
}
217+
cv::Mat image221 = meteorDecoder.getRGBImage(PacketParser::APID65, PacketParser::APID65, PacketParser::APID64, mSettings.fillBackLines());
218+
cv::Mat image224 = meteorDecoder.getRGBImage(PacketParser::APID65, PacketParser::APID65, PacketParser::APID67, mSettings.fillBackLines());
219+
220+
if(!ThreatImage::isNightPass(image221, mSettings.getNightPassTreshold())) {
221+
image221 = ThreatImage::sharpen(image221);
222+
image224 = ThreatImage::sharpen(image224);
223+
224+
imagesToSpread.push_back(ImageForSpread(image221, "221_"));
225+
imagesToSpread.push_back(ImageForSpread(image224, "224_"));
226+
227+
228+
if(mSettings.addRainOverlay()) {
229+
imagesToSpread.push_back(ImageForSpread(ThreatImage::addRainOverlay(image221, rainOverlay), "rain_221_"));
230+
imagesToSpread.push_back(ImageForSpread(ThreatImage::addRainOverlay(image224, rainOverlay), "rain_224_"));
231+
}
232+
233+
saveImage(mSettings.getOutputPath() + fileNameDate + "_221.bmp", image221);
234+
saveImage(mSettings.getOutputPath() + fileNameDate + "_224.bmp", image224);
235+
} else {
236+
std::cout << "Night pass, RGB image skipped, threshold set to: " << mSettings.getNightPassTreshold() << std::endl;
237+
}
238+
191239
} else if(meteorDecoder.isChannel64Available() && meteorDecoder.isChannel65Available() && meteorDecoder.isChannel66Available()) {
192240
cv::Mat threatedImage1 = meteorDecoder.getRGBImage(PacketParser::APID66, PacketParser::APID65, PacketParser::APID64, mSettings.fillBackLines());
193241
cv::Mat threatedImage2 = meteorDecoder.getRGBImage(PacketParser::APID65, PacketParser::APID65, PacketParser::APID64, mSettings.fillBackLines());

0 commit comments

Comments
 (0)