#include "RkGenMeshVersion.h"
|
#include "genMesh.h"
|
#include "genMeshUtils.h"
|
#include "Utils.h"
|
#include "LdchApp.h"
|
|
#include <iostream>
|
|
#ifdef WIN32
|
#include <vld.h>
|
#include <opencv2/opencv.hpp>
|
#endif
|
|
#ifdef __cplusplus
|
extern "C" {
|
#endif
|
|
#include "FecAppLib.h"
|
|
#ifdef __cplusplus
|
}
|
#endif
|
|
|
/* ²âÊÔFEC·Ö¼¶Ð£ÕýЧ¹û */
|
void test1()
|
{
|
int srcWidth, srcHeight;
|
int dstWidth, dstHeight;
|
|
/* ¾µÍ·²ÎÊý */
|
CameraCoeff camCoeff;
|
|
/* imx415_2.88mm_3840x2160_ISP */
|
srcWidth = 3840;
|
srcHeight = 2160;
|
dstWidth = 3840;
|
dstHeight = 2160;
|
camCoeff.a0 = -2297.284245574242504517;
|
camCoeff.a2 = 0.0001183387160889;
|
camCoeff.a3 = 0.00000000621559354720;
|
camCoeff.a4 = 0.00000000001194583141;
|
camCoeff.cx = 1950.09945599999991827644;
|
camCoeff.cy = 1124.36467200000015509431;
|
|
/* imx415_2.88mm_3840x2160 */
|
//srcWidth = 3840;
|
//srcHeight = 2160;
|
//dstWidth = 3840;
|
//dstHeight = 2160;
|
//camCoeff.a0 = -2288.3964056645068012585397809743881225585937500000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.a2 = 0.0001189734940934424712666653278780870550690451636910438537597656250000000000000000000000000000000000;
|
//camCoeff.a3 = 0.0000000054279366156211879180515005656904731212719639188435394316911697387695312500000000000000000000;
|
//camCoeff.a4 = 0.0000000000122304699233774804266760321267817402703104168182335342862643301486968994140625000000000000;
|
//camCoeff.cx = 1950.0996751827506159315817058086395263671875000000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.cy = 1123.5352222944213735900120809674263000488281250000000000000000000000000000000000000000000000000000000000;
|
|
/* imx415_3.6mm_3840x2160_ISP */
|
//srcWidth = 3840;
|
//srcHeight = 2160;
|
//dstWidth = 3840;
|
//dstHeight = 2160;
|
//camCoeff.a0 = -2819.4072493821618081;
|
//camCoeff.a2 = 0.0000316126581792;
|
//camCoeff.a3 = 0.0000000688410142;
|
//camCoeff.a4 = -0.0000000000130686;
|
//camCoeff.cx = 1956.3909119999998438;
|
//camCoeff.cy = 1140.6355200000000422;
|
|
/* imx415_3.6mm_3840x2160 */
|
//srcWidth = 3840;
|
//srcHeight = 2160;
|
//dstWidth = 3840;
|
//dstHeight = 2160;
|
//camCoeff.a0 = -2701.5553345375383287318982183933258056640625000000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.a2 = 0.0000268969613364317018525725261346437378051632549613714218139648437500000000000000000000000000000000;
|
//camCoeff.a3 = 0.0000000691847147285347339282183675053528038034755809349007904529571533203125000000000000000000000000;
|
//camCoeff.a4 = -0.0000000000130627571989119925053445836944665276596611036552531004417687654495239257812500000000000000;
|
//camCoeff.cx = 1957.1773439999999482097337022423744201660156250000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.cy = 1135.7418239999999514111550524830818176269531250000000000000000000000000000000000000000000000000000000000;
|
|
/* imx347_4mm_2688x1520 */
|
//srcWidth = 2688;
|
//srcHeight = 1520;
|
//dstWidth = 2688;
|
//dstHeight = 1520;
|
//camCoeff.a0 = -1863.7984212819360436697024852037429809570312500000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.a2 = 0.0004710038222292998403434305387804670317564159631729125976562500000000000000000000000000000000000000;
|
//camCoeff.a3 = -0.0000002932338849422447377658846635883893583240933367051184177398681640625000000000000000000000000000;
|
//camCoeff.a4 = 0.0000000001512588833120702854166806930133210712385860574613616336137056350708007812500000000000000000;
|
//camCoeff.cx = 1363.0740479999999479332473129034042358398437500000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.cy = 787.0316799999999375359038822352886199951171875000000000000000000000000000000000000000000000000000000000;
|
|
/* OS04A10_4IR_2688x1520 */
|
//srcWidth = 2688;
|
//srcHeight = 1520;
|
//dstWidth = 2688;
|
//dstHeight = 1520;
|
//camCoeff.a0 = -1830.2636074851754983683349564671516418457031250000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.a2 = 0.0004237951284061040315917501253295540664112195372581481933593750000000000000000000000000000000000000;
|
//camCoeff.a3 = -0.0000002507674855122118848025746917079770170744268398266285657882690429687500000000000000000000000000;
|
//camCoeff.a4 = 0.0000000001272470035935948196069050985539572624916093701585850794799625873565673828125000000000000000;
|
//camCoeff.cx = 1351.1178239999999277642928063869476318359375000000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.cy = 739.4860800000000153886503539979457855224609375000000000000000000000000000000000000000000000000000000000;
|
|
/* OS04A10_6IR_2688x1520 */
|
//srcWidth = 2688;
|
//srcHeight = 1520;
|
//dstWidth = 2688;
|
//dstHeight = 1520;
|
//camCoeff.a0 = -2653.9299617503911576932296156883239746093750000000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.a2 = 0.0001171174803799108549888854935439042037614854052662849426269531250000000000000000000000000000000000;
|
//camCoeff.a3 = -0.0000000150166870224219489918825648283248752612450971355428919196128845214843750000000000000000000000;
|
//camCoeff.a4 = 0.0000000000087465891629053077103521832658175594581856371334538380324374884366989135742187500000000000;
|
//camCoeff.cx = 1333.2695039999998698476701974868774414062500000000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.cy = 728.1043200000000297222868539392948150634765625000000000000000000000000000000000000000000000000000000000;
|
|
/* s5kgm1sp_2mm_3840x2160 */
|
//srcWidth = 3840;
|
//srcHeight = 2160;
|
//dstWidth = 3840;
|
//dstHeight = 2160;
|
//camCoeff.a0 = -2218.1261186871761310612782835960388183593750000000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.a2 = 0.0001041174419821471223372016945418749855889473110437393188476562500000000000000000000000000000000000;
|
//camCoeff.a3 = 0.0000000126660789198655226725038293366168429265883332845987752079963684082031250000000000000000000000;
|
//camCoeff.a4 = -0.0000000000042910636667388937011160122430028583239564055062942315998952835798263549804687500000000000;
|
//camCoeff.cx = 1941.4969974473960974137298762798309326171875000000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.cy = 1119.2980280068773026869166642427444458007812500000000000000000000000000000000000000000000000000000000000;
|
|
/* DJI_test_4000x3000 */
|
//srcWidth = 4000;
|
//srcHeight = 3000;
|
//dstWidth = 4000;
|
//dstHeight = 3000;
|
//camCoeff.a0 = -1717.3398540219218375568743795156478881835937500000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.a2 = 0.0000979924653478899483540626169641996057180222123861312866210937500000000000000000000000000000000000;
|
//camCoeff.a3 = -0.0000000365259026624921297930806668007724935520741382788401097059249877929687500000000000000000000000;
|
//camCoeff.a4 = 0.0000000000221078478569051180847769663747939545943299588515174036729149520397186279296875000000000000;
|
//camCoeff.cx = 2035.6544000000001233274815604090690612792968750000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.cy = 1515.2591999999999643478076905012130737304687500000000000000000000000000000000000000000000000000000000000;
|
|
int srcSize = (srcWidth * srcHeight) > (dstWidth * dstHeight) ? (srcWidth * srcHeight) : (dstWidth * dstHeight);
|
unsigned char *pImgY = new unsigned char[srcSize];
|
unsigned char *pImgUV = new unsigned char[srcSize];
|
unsigned char *pImgOut = new unsigned char[srcSize * 2];
|
/* ¶ÁyuvÎļþ */
|
char srcYuvPath[256];
|
sprintf(srcYuvPath, "../data_in/imx415_2.88mm_3840x2160/imx415_2.88mm_3840x2160_001.nv12"); /* imx415_2.88mm_3840x2160 */
|
//sprintf(srcYuvPath, "../data_in/imx415_2.88mm_3584x2016/imx415_2.88mm_3584x2016_001.nv12"); /* imx415_2.88mm_3584x2016 */
|
//sprintf(srcYuvPath, "../data_in/imx415_3.6mm_3840x2160/imx415_3.6mm_3840x2160_001.nv12"); /* imx415_3.6mm_3840x2160 */
|
//sprintf(srcYuvPath, "../data_in/imx347_4mm_2688x1520/imx347_4mm_2688x1520_006.nv12"); /* imx415_3.6mm_3840x2160 */
|
//sprintf(srcYuvPath, "../data_in/s5kgm1sp_2mm_3840x2160/s5kgm1sp_2mm_3840x2160_001.nv12"); /* s5kgm1sp_2mm_3840x2160 */
|
//sprintf(srcYuvPath, "../data_in/s5kgm1sp_2mm_3328x1872/s5kgm1sp_2mm_3328x1872_001.nv12"); /* s5kgm1sp_2mm_3328x1872 */
|
//sprintf(srcYuvPath, "../data_in/s5kgm1sp_2mm_3072x1728/s5kgm1sp_2mm_3072x1728_001.nv12"); /* s5kgm1sp_2mm_3072x1728 */
|
|
readNV12(srcYuvPath, srcWidth, srcHeight, pImgY, pImgUV);
|
|
Rkclock rkclock;
|
/* Éú³ÉFECÓ³Éä±íÏà¹ØµÄ²ÎÊý */
|
FecParams fecParams;
|
fecParams.correctX = 1; /* ˮƽx·½ÏòУÕý: 1´ú±íУÕý, 0´ú±í²»Ð£Õý */
|
fecParams.correctY = 1; /* ´¹Ö±y·½ÏòУÕý: 1´ú±íУÕý, 0´ú±í²»Ð£Õý */
|
fecParams.saveMaxFovX = 1; /* ±£Áôˮƽx·½Ïò×î´óFOV: 1´ú±í±£Áô, 0´ú±í²»±£Áô */
|
fecParams.isFecOld = 1; /* ÊÇ·ñ¾É°æFEC: 1´ú±íÊÇ£¬0´ú±í²»ÊÇ */
|
fecParams.saveMesh4bin = 0; /* ÊÇ·ñ±£´æmeshxi,xf,yi,yf4¸öbinÎļþ: 1´ú±í±£´æ, 0´ú±í²»±£´æ */
|
sprintf(fecParams.mesh4binPath, "../data_out/"); /* ±£´æmeshxi,xf,yi,yf4¸öbinÎļþµÄ·¾¶ */
|
|
rkclock.clockStart();
|
genFecMeshInit(srcWidth, srcHeight, dstWidth, dstHeight, fecParams, camCoeff); /* ³õʼ»¯£º¸ù¾ÝͼÏñÊä³ö·Ö±æÂÊ£¬¼ÆËãFECÓ³Éä±íµÄÏà¹Ø²ÎÊý£¬ÉêÇëÐèÒªµÄbuffer */
|
rkclock.clockEnd("genFecMeshInit");
|
|
unsigned short *pMeshXI; /* XÕûÊý²¿·Ö */
|
unsigned char *pMeshXF; /* XСÊý²¿·Ö */
|
unsigned short *pMeshYI; /* YÕûÊý²¿·Ö */
|
unsigned char *pMeshYF; /* YСÊý²¿·Ö */
|
/* FEC 4¸ömesh ÄÚ´æÉêÇë */
|
mallocFecMesh(fecParams.meshSize4bin, &pMeshXI, &pMeshXF, &pMeshYI, &pMeshYF);
|
|
bool success;
|
int level = 0; /* level·¶Î§: 0-255 */
|
char dstYuvPath[256];
|
for (level = 0; level <= 255; level = level + 1)
|
{
|
printf("level = %d\n", level);
|
|
/* Éú³É²»Í¬Ð£Õý³Ì¶ÈµÄFECÄ£¿éµÄmesh±í */
|
rkclock.clockStart();
|
success = genFECMeshNLevel(fecParams, camCoeff, level, pMeshXI, pMeshXF, pMeshYI, pMeshYF);
|
rkclock.clockEnd("genFECMeshNLevel");
|
|
/* µ÷ÓÃFEC_Cmodel_4bin */
|
FEC_Cmodel_4bin(srcWidth, srcHeight, dstWidth, dstHeight, pImgY, pImgUV, pMeshXI, pMeshXF, pMeshYI, pMeshYF, pImgOut);
|
|
/* ±£´æ */
|
if (fecParams.correctX == 1 && fecParams.correctY == 1)
|
{
|
sprintf(dstYuvPath, "../data_out/fec_out_both_correct_%dx%d_%03d.nv12", dstWidth, dstHeight, level);
|
}
|
else if (fecParams.correctX == 1 && fecParams.correctY == 0)
|
{
|
sprintf(dstYuvPath, "../data_out/fec_out_x_correct_%dx%d_%03d.nv12", dstWidth, dstHeight, level);
|
}
|
else if (fecParams.correctX == 0 && fecParams.correctY == 1)
|
{
|
sprintf(dstYuvPath, "../data_out/fec_out_y_correct_%dx%d_%03d.nv12", dstWidth, dstHeight, level);
|
}
|
else if (fecParams.correctX == 0 && fecParams.correctY == 0)
|
{
|
sprintf(dstYuvPath, "../data_out/fec_out_no_correct_%dx%d_%03d.nv12", dstWidth, dstHeight, level);
|
}
|
saveNV12(dstYuvPath, dstWidth, dstHeight, pImgOut);
|
}
|
delete[] pImgY;
|
delete[] pImgUV;
|
delete[] pImgOut;
|
/* FEC mesh ÄÚ´æÊÍ·Å */
|
freeFecMesh(pMeshXI, pMeshXF, pMeshYI, pMeshYF);
|
/* ·´³õʼ»¯ */
|
genFecMeshDeInit(fecParams);
|
|
}
|
|
/* ²âÊÔLDCH·Ö¼¶Ð£ÕýЧ¹û */
|
void test2()
|
{
|
int srcWidth, srcHeight;
|
int dstWidth, dstHeight;
|
|
/* ¾µÍ·²ÎÊý */
|
CameraCoeff camCoeff;
|
|
/* imx415_2.88mm_3840x2160_ISP */
|
//srcWidth = 3840;
|
//srcHeight = 2160;
|
//dstWidth = 3840;
|
//dstHeight = 2160;
|
//camCoeff.a0 = -2297.284245574242504517;
|
//camCoeff.a2 = 0.0001183387160889;
|
//camCoeff.a3 = 0.00000000621559354720;
|
//camCoeff.a4 = 0.00000000001194583141;
|
//camCoeff.cx = 1950.09945599999991827644;
|
//camCoeff.cy = 1124.36467200000015509431;
|
|
/* imx415_2.88mm_3840x2160 */
|
//srcWidth = 3840;
|
//srcHeight = 2160;
|
//dstWidth = 3840;
|
//dstHeight = 2160;
|
//camCoeff.a0 = -2288.3964056645068012585397809743881225585937500000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.a2 = 0.0001189734940934424712666653278780870550690451636910438537597656250000000000000000000000000000000000;
|
//camCoeff.a3 = 0.0000000054279366156211879180515005656904731212719639188435394316911697387695312500000000000000000000;
|
//camCoeff.a4 = 0.0000000000122304699233774804266760321267817402703104168182335342862643301486968994140625000000000000;
|
//camCoeff.cx = 1950.0996751827506159315817058086395263671875000000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.cy = 1123.5352222944213735900120809674263000488281250000000000000000000000000000000000000000000000000000000000;
|
|
/* imx415_3.6mm_3840x2160_ISP */
|
//srcWidth = 3840;
|
//srcHeight = 2160;
|
//dstWidth = 3840;
|
//dstHeight = 2160;
|
//camCoeff.a0 = -2819.4072493821618081;
|
//camCoeff.a2 = 0.0000316126581792;
|
//camCoeff.a3 = 0.0000000688410142;
|
//camCoeff.a4 = -0.0000000000130686;
|
//camCoeff.cx = 1956.3909119999998438;
|
//camCoeff.cy = 1140.6355200000000422;
|
|
/* imx415_3.6mm_3840x2160 */
|
//srcWidth = 3840;
|
//srcHeight = 2160;
|
//dstWidth = 3840;
|
//dstHeight = 2160;
|
//camCoeff.a0 = -2701.5553345375383287318982183933258056640625000000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.a2 = 0.0000268969613364317018525725261346437378051632549613714218139648437500000000000000000000000000000000;
|
//camCoeff.a3 = 0.0000000691847147285347339282183675053528038034755809349007904529571533203125000000000000000000000000;
|
//camCoeff.a4 = -0.0000000000130627571989119925053445836944665276596611036552531004417687654495239257812500000000000000;
|
//camCoeff.cx = 1957.1773439999999482097337022423744201660156250000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.cy = 1135.7418239999999514111550524830818176269531250000000000000000000000000000000000000000000000000000000000;
|
|
/* imx347_4mm_2688x1520 */
|
//srcWidth = 2688;
|
//srcHeight = 1520;
|
//dstWidth = 2688;
|
//dstHeight = 1520;
|
//camCoeff.a0 = -1863.7984212819360436697024852037429809570312500000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.a2 = 0.0004710038222292998403434305387804670317564159631729125976562500000000000000000000000000000000000000;
|
//camCoeff.a3 = -0.0000002932338849422447377658846635883893583240933367051184177398681640625000000000000000000000000000;
|
//camCoeff.a4 = 0.0000000001512588833120702854166806930133210712385860574613616336137056350708007812500000000000000000;
|
//camCoeff.cx = 1363.0740479999999479332473129034042358398437500000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.cy = 787.0316799999999375359038822352886199951171875000000000000000000000000000000000000000000000000000000000;
|
|
/* OS04A10_4IR_2688x1520 */
|
//srcWidth = 2688;
|
//srcHeight = 1520;
|
//dstWidth = 2688;
|
//dstHeight = 1520;
|
//camCoeff.a0 = -1830.2636074851754983683349564671516418457031250000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.a2 = 0.0004237951284061040315917501253295540664112195372581481933593750000000000000000000000000000000000000;
|
//camCoeff.a3 = -0.0000002507674855122118848025746917079770170744268398266285657882690429687500000000000000000000000000;
|
//camCoeff.a4 = 0.0000000001272470035935948196069050985539572624916093701585850794799625873565673828125000000000000000;
|
//camCoeff.cx = 1351.1178239999999277642928063869476318359375000000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.cy = 739.4860800000000153886503539979457855224609375000000000000000000000000000000000000000000000000000000000;
|
|
/* OS04A10_6IR_2688x1520 */
|
//srcWidth = 2688;
|
//srcHeight = 1520;
|
//dstWidth = 2688;
|
//dstHeight = 1520;
|
//camCoeff.a0 = -2653.9299617503911576932296156883239746093750000000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.a2 = 0.0001171174803799108549888854935439042037614854052662849426269531250000000000000000000000000000000000;
|
//camCoeff.a3 = -0.0000000150166870224219489918825648283248752612450971355428919196128845214843750000000000000000000000;
|
//camCoeff.a4 = 0.0000000000087465891629053077103521832658175594581856371334538380324374884366989135742187500000000000;
|
//camCoeff.cx = 1333.2695039999998698476701974868774414062500000000000000000000000000000000000000000000000000000000000000;
|
//camCoeff.cy = 728.1043200000000297222868539392948150634765625000000000000000000000000000000000000000000000000000000000;
|
|
/* s5kgm1sp_2mm_3840x2160 */
|
srcWidth = 3840;
|
srcHeight = 2160;
|
dstWidth = 3840;
|
dstHeight = 2160;
|
camCoeff.a0 = -2218.1261186871761310612782835960388183593750000000000000000000000000000000000000000000000000000000000000;
|
camCoeff.a2 = 0.0001041174419821471223372016945418749855889473110437393188476562500000000000000000000000000000000000;
|
camCoeff.a3 = 0.0000000126660789198655226725038293366168429265883332845987752079963684082031250000000000000000000000;
|
camCoeff.a4 = -0.0000000000042910636667388937011160122430028583239564055062942315998952835798263549804687500000000000;
|
camCoeff.cx = 1941.4969974473960974137298762798309326171875000000000000000000000000000000000000000000000000000000000000;
|
camCoeff.cy = 1119.2980280068773026869166642427444458007812500000000000000000000000000000000000000000000000000000000000;
|
|
int srcSize = (srcWidth * srcHeight) > (dstWidth * dstHeight) ? (srcWidth * srcHeight) : (dstWidth * dstHeight);
|
unsigned short *pImgIn = new unsigned short[srcSize * 3];
|
unsigned short *pImgOut = new unsigned short[srcSize * 3];
|
|
/* ¶ÁBGRͼÏñ */
|
char srcBGRPath[256];
|
//sprintf(srcBGRPath, "../data_in/imx415_2.88mm_3840x2160/imx415_2.88mm_3840x2160_001.jpeg"); /* imx415_2.88mm_3840x2160 */
|
//sprintf(srcBGRPath, "../data_in/imx415_3.6mm_3840x2160/imx415_3.6mm_3840x2160_001.jpeg"); /* imx415_3.6mm_3840x2160 */
|
//sprintf(srcBGRPath, "../data_in/imx347_4mm_2688x1520/imx347_4mm_2688x1520_006.bmp"); /* imx415_3.6mm_3840x2160 */
|
sprintf(srcBGRPath, "../data_in/s5kgm1sp_2mm_3840x2160/s5kgm1sp_2mm_3840x2160_001.png"); /* s5kgm1sp_2mm_3840x2160 */
|
|
#ifdef WIN32
|
cv::Mat imgBGR = cv::imread(srcBGRPath);
|
unsigned char *pIn = imgBGR.data;
|
int stride = srcWidth * 3;
|
int index = 0;
|
for (int y = 0; y < imgBGR.rows; ++y)
|
{
|
for (int x = 0; x < imgBGR.cols; ++x)
|
{
|
pImgIn[index + 0] = *(pIn + y * stride + 3 * x + 0);
|
pImgIn[index + 1] = *(pIn + y * stride + 3 * x + 1);
|
pImgIn[index + 2] = *(pIn + y * stride + 3 * x + 2);
|
index = index + 3;
|
}
|
}
|
#endif
|
|
Rkclock rkclock;
|
/* Éú³ÉLDCHÓ³Éä±íÏà¹ØµÄ²ÎÊý */
|
LdchParams ldchParams;
|
ldchParams.saveMaxFovX = 1; /* ±£Áôˮƽx·½Ïò×î´óFOV: 1´ú±í±£Áô, 0´ú±í²»±£Áô */
|
ldchParams.isLdchOld = 1; /* ÊÇ·ñ¾É°æLDCH: 1´ú±íÊÇ£¬0´ú±í²»ÊÇ */
|
ldchParams.saveMeshX = 0; /* ÊÇ·ñ±£´æMeshX.binÎļþ: 1´ú±í±£´æ, 0´ú±í²»±£´æ */
|
sprintf(ldchParams.meshPath, "../data_out/"); /* ±£´æMeshX.binÎļþµÄ·¾¶ */
|
|
rkclock.clockStart();
|
genLdchMeshInit(srcWidth, srcHeight, dstWidth, dstHeight, ldchParams, camCoeff); /* ³õʼ»¯£º¸ù¾ÝͼÏñÊä³ö·Ö±æÂÊ£¬¼ÆËãLDCHÓ³Éä±íµÄÏà¹Ø²ÎÊý£¬ÉêÇëÐèÒªµÄbuffer */
|
rkclock.clockEnd("genLdchMeshInit");
|
|
unsigned short *pMeshX = new unsigned short[ldchParams.meshSize];
|
bool success;
|
int level = 0; /* level·¶Î§: 0-255 */
|
char dstYuvPath[256];
|
for (level = 0; level <= 255; ++level)
|
{
|
printf("level = %d\n", level);
|
|
rkclock.clockStart();
|
success = genLDCMeshNLevel(ldchParams, camCoeff, level, pMeshX); /* Éú³É¶ÔӦУÕýlevelµÄLDCHÓ³Éä±í */
|
rkclock.clockEnd("genLDCMeshNLevel");
|
|
LDCH_Cmodel(dstWidth, dstHeight, pImgIn, pImgOut, pMeshX); /* µ÷ÓÃLDCH_Cmodel */
|
|
#ifdef WIN32
|
/* ±£´æ */
|
int imgBit = 8;
|
//sprintf(dstYuvPath, "../data_out/ldch_out_%dx%d_%03d.bmp", dstWidth, dstHeight, level);
|
//SaveBmpFile2(dstYuvPath, dstWidth, dstHeight, imgBit, pImgOut);
|
sprintf(dstYuvPath, "../data_out/ldch_out_%dx%d_%03d.nv12", dstWidth, dstHeight, level);
|
saveLdchNV12(dstYuvPath, dstWidth, dstHeight, imgBit, pImgOut);
|
#endif
|
}
|
/* ÄÚ´æÊÍ·Å */
|
delete[] pImgIn;
|
delete[] pImgOut;
|
delete[] pMeshX;
|
/* ·´³õʼ»¯ */
|
genLdchMeshDeInit(ldchParams);
|
}
|
|
|
|
int main()
|
{
|
test1();
|
|
#ifdef WIN32
|
system("pause");
|
#endif
|
return 0;
|
}
|