main
Matthew 6 months ago
parent 38e4ef464c
commit 570e01dda5

@ -20,7 +20,7 @@ class burst
~burst() = default; ~burst() = default;
// Reference image index in the array // Reference image index in the array
int reference_image_idx; int m_reference_image_idx;
// Source bayer images & grayscale unpadded image // Source bayer images & grayscale unpadded image
std::vector<hdrplus::bayer_image> bayer_images; std::vector<hdrplus::bayer_image> bayer_images;

@ -936,13 +936,13 @@ namespace hdrplus
// exit(-1); // exit(-1);
// Align every image // Align every image
const std::vector<cv::Mat>& ref_grayimg_pyramid = per_grayimg_pyramid[burst_images.reference_image_idx]; const std::vector<cv::Mat>& ref_grayimg_pyramid = per_grayimg_pyramid[burst_images.m_reference_image_idx];
std::vector<std::vector<std::pair<int, int>>> curr_alignment; std::vector<std::vector<std::pair<int, int>>> curr_alignment;
std::vector<std::vector<std::pair<int, int>>> prev_alignment; std::vector<std::vector<std::pair<int, int>>> prev_alignment;
for (int img_idx = 0; img_idx < burst_images.num_images; ++img_idx) for (int img_idx = 0; img_idx < burst_images.num_images; ++img_idx)
{ {
// Do not align with reference image // Do not align with reference image
if (img_idx == burst_images.reference_image_idx) if (img_idx == burst_images.m_reference_image_idx)
continue; continue;
const std::vector<cv::Mat>& alt_grayimg_pyramid = per_grayimg_pyramid[img_idx]; const std::vector<cv::Mat>& alt_grayimg_pyramid = per_grayimg_pyramid[img_idx];

@ -30,16 +30,16 @@ burst::burst( const std::string& burst_path, const std::string& reference_image_
// Find reference image path in input directory // Find reference image path in input directory
// reference image path need to be absolute path // reference image path need to be absolute path
reference_image_idx = -1; m_reference_image_idx = -1;
for ( size_t i = 0; i < bayer_image_paths.size(); ++i ) for ( size_t i = 0; i < bayer_image_paths.size(); ++i )
{ {
if ( bayer_image_paths[ i ] == reference_image_path ) if ( bayer_image_paths[ i ] == reference_image_path )
{ {
reference_image_idx = i; m_reference_image_idx = i;
} }
} }
if ( reference_image_idx == -1 ) if (m_reference_image_idx == -1 )
{ {
return; return;
// throw std::runtime_error("Error unable to locate reference image " + reference_image_path ); // throw std::runtime_error("Error unable to locate reference image " + reference_image_path );
@ -53,7 +53,7 @@ burst::burst( const std::string& burst_path, const std::string& reference_image_
} }
printf("%s::%s reference image idx %d\n", \ printf("%s::%s reference image idx %d\n", \
__FILE__, __func__, reference_image_idx ); __FILE__, __func__, m_reference_image_idx);
#endif #endif
// Get source bayer image // Get source bayer image
@ -109,13 +109,13 @@ burst::burst( const std::vector<std::string>& bayer_image_paths, int reference_i
// Find reference image path in input directory // Find reference image path in input directory
// reference image path need to be absolute path // reference image path need to be absolute path
reference_image_idx = -1; m_reference_image_idx = -1;
if ( reference_image_index >= 0 && reference_image_index < bayer_image_paths.size() ) if ( reference_image_index >= 0 && reference_image_index < bayer_image_paths.size() )
{ {
reference_image_idx = reference_image_index; m_reference_image_idx = reference_image_index;
} }
if ( reference_image_idx == -1 ) if (m_reference_image_idx == -1 )
{ {
return; return;
// throw std::runtime_error("Error reference image index is out of range " ); // throw std::runtime_error("Error reference image index is out of range " );
@ -129,7 +129,7 @@ burst::burst( const std::vector<std::string>& bayer_image_paths, int reference_i
} }
printf("%s::%s reference image idx %d\n", \ printf("%s::%s reference image idx %d\n", \
__FILE__, __func__, reference_image_idx ); __FILE__, __func__, m_reference_image_idx);
#endif #endif
// Get source bayer image // Get source bayer image
@ -185,13 +185,13 @@ burst::burst( const std::vector<std::vector<uint8_t> >& bayer_image_contents, in
// Find reference image path in input directory // Find reference image path in input directory
// reference image path need to be absolute path // reference image path need to be absolute path
reference_image_idx = -1; m_reference_image_idx = -1;
if ( reference_image_index >= 0 && reference_image_index < bayer_image_contents.size() ) if ( reference_image_index >= 0 && reference_image_index < bayer_image_contents.size() )
{ {
reference_image_idx = reference_image_index; m_reference_image_idx = reference_image_index;
} }
if ( reference_image_idx == -1 ) if (m_reference_image_idx == -1 )
{ {
return; return;
// throw std::runtime_error("Error reference image index is out of range " ); // throw std::runtime_error("Error reference image index is out of range " );
@ -199,7 +199,7 @@ burst::burst( const std::vector<std::vector<uint8_t> >& bayer_image_contents, in
#ifndef NDEBUG #ifndef NDEBUG
printf("%s::%s reference image idx %d\n", \ printf("%s::%s reference image idx %d\n", \
__FILE__, __func__, reference_image_idx ); __FILE__, __func__, m_reference_image_idx);
#endif #endif
// Get source bayer image // Get source bayer image
@ -255,13 +255,13 @@ burst::burst( const std::vector<std::shared_ptr<MemFile> >& bayer_image_files, i
// Find reference image path in input directory // Find reference image path in input directory
// reference image path need to be absolute path // reference image path need to be absolute path
reference_image_idx = -1; m_reference_image_idx = -1;
if ( reference_image_index >= 0 && reference_image_index < bayer_image_files.size() ) if ( reference_image_index >= 0 && reference_image_index < bayer_image_files.size() )
{ {
reference_image_idx = reference_image_index; m_reference_image_idx = reference_image_index;
} }
if ( reference_image_idx == -1 ) if (m_reference_image_idx == -1 )
{ {
return; return;
// throw std::runtime_error("Error reference image index is out of range " ); // throw std::runtime_error("Error reference image index is out of range " );
@ -269,7 +269,7 @@ burst::burst( const std::vector<std::shared_ptr<MemFile> >& bayer_image_files, i
#ifndef NDEBUG #ifndef NDEBUG
printf("%s::%s reference image idx %d\n", \ printf("%s::%s reference image idx %d\n", \
__FILE__, __func__, reference_image_idx ); __FILE__, __func__, m_reference_image_idx);
#endif #endif
// Get source bayer image // Get source bayer image

@ -602,7 +602,7 @@ namespace hdrplus
writeCSV(DBG_OUTPUT_ROOT "merged.csv", burst_images.merged_bayer_image); writeCSV(DBG_OUTPUT_ROOT "merged.csv", burst_images.merged_bayer_image);
#endif #endif
this->refIdx = burst_images.reference_image_idx; this->refIdx = burst_images.m_reference_image_idx;
// this->burstPath = burstPath; // this->burstPath = burstPath;
// std::cout<<"processMerged:"<<std::endl; // std::cout<<"processMerged:"<<std::endl;
// show20_20(mergedB); // show20_20(mergedB);
@ -625,7 +625,7 @@ namespace hdrplus
// read in ref img // read in ref img
// bayer_image* ref = new bayer_image(rawPathList[refIdx]); // bayer_image* ref = new bayer_image(rawPathList[refIdx]);
bayer_image* ref = new bayer_image(burst_images.bayer_images[burst_images.reference_image_idx]); bayer_image* ref = new bayer_image(burst_images.bayer_images[burst_images.m_reference_image_idx]);
cv::Mat processedRefImage = postprocess(ref->libraw_processor, params.rawpyArgs); cv::Mat processedRefImage = postprocess(ref->libraw_processor, params.rawpyArgs);
std::cout << "size ref: " << processedRefImage.rows << "*" << processedRefImage.cols << std::endl; std::cout << "size ref: " << processedRefImage.rows << "*" << processedRefImage.cols << std::endl;

@ -14,12 +14,12 @@ namespace hdrplus
// 4.1 Noise Parameters and RMS // 4.1 Noise Parameters and RMS
// Noise parameters calculated from baseline ISO noise parameters // Noise parameters calculated from baseline ISO noise parameters
double lambda_shot, lambda_read; double lambda_shot, lambda_read;
std::tie(lambda_shot, lambda_read) = burst_images.bayer_images[burst_images.reference_image_idx].get_noise_params(); std::tie(lambda_shot, lambda_read) = burst_images.bayer_images[burst_images.m_reference_image_idx].get_noise_params();
// 4.2-4.4 Denoising and Merging // 4.2-4.4 Denoising and Merging
// Get padded bayer image // Get padded bayer image
cv::Mat reference_image = burst_images.bayer_images_pad[burst_images.reference_image_idx]; cv::Mat reference_image = burst_images.bayer_images_pad[burst_images.m_reference_image_idx];
#ifndef NDEBUG #ifndef NDEBUG
// cv::imwrite("ref.jpg", reference_image); // cv::imwrite("ref.jpg", reference_image);
#endif #endif
@ -41,7 +41,7 @@ namespace hdrplus
//create list of channel_i of alternate images: //create list of channel_i of alternate images:
std::vector<cv::Mat> alternate_channel_i_list; std::vector<cv::Mat> alternate_channel_i_list;
for (int j = 0; j < burst_images.num_images; j++) { for (int j = 0; j < burst_images.num_images; j++) {
if (j != burst_images.reference_image_idx) { if (j != burst_images.m_reference_image_idx) {
//get alternate image //get alternate image
cv::Mat alt_image = burst_images.bayer_images_pad[j]; cv::Mat alt_image = burst_images.bayer_images_pad[j];

Loading…
Cancel
Save