diff --git a/src/finish.cpp b/src/finish.cpp index aae7c9a..5d73d70 100644 --- a/src/finish.cpp +++ b/src/finish.cpp @@ -495,19 +495,62 @@ namespace hdrplus return sharpImage; } + void copy_mat_16U_3(u_int16_t* ptr_A, cv::Mat B){ + // u_int16_t* ptr_A = (u_int16_t*)A.data; + u_int16_t* ptr_B = (u_int16_t*)B.data; + int H = B.rows; + int W = B.cols; + int end = H*W; + for(int i=0;i dvals; + for(int c = 0; c < mergedImg.cols; c++) { + dvals.push_back(*(ptr+r*mergedImg.cols+c)); + } + cv::Mat mline(dvals, true); + cv::transpose(mline, mline); + m.push_back(mline); + } + int ch = CV_MAT_CN(opencv_type); + + m = m.reshape(ch); + m.convertTo(m, opencv_type); + + return m; + + } + void finish::process(std::string burstPath, cv::Mat mergedBayer,int refIdx){ // copy mergedBayer to rawReference std::cout<<"finish pipeline start ..."<refIdx = refIdx; this->burstPath = burstPath; - this->mergedBayer = mergedBayer;//loadFromCSV(mergedBayerPath, CV_16UC1); + this->mergedBayer = loadFromCSV("merged_haohua.csv", CV_16UC1);// processMergedMat(mergedBayer,CV_16UC1);//loadFromCSV(mergedBayerPath, CV_16UC1); load_rawPathList(burstPath); // read in ref img bayer_image* ref = new bayer_image(rawPathList[refIdx]); cv::Mat processedRefImage = postprocess(ref->libraw_processor,params.rawpyArgs); + std::cout<<"size ref: "<libraw_processor->imgdata.rawdata.raw_image,this->mergedBayer); + // mergedImg->libraw_processor->imgdata.rawdata.raw_image = (uint16_t*)mergedBayer.data; + copy_mat_16U_3(mergedImg->libraw_processor->imgdata.rawdata.raw_image,this->mergedBayer); cv::Mat processedMerge = postprocess(mergedImg->libraw_processor,params.rawpyArgs); // write merged image