3D interpolation using LUT very slow, alternative method

조회 수: 9 (최근 30일)
Abdulllah
Abdulllah 2019년 4월 16일
편집: Abdulllah 2019년 4월 16일
Hello,
In image processing, converting XYZ(CIE 1931 XYZ space) to display RGB, We have created a LUT for our display. it is 3d cubic interpolation based and our results are correct. But the issue is that our code is extremly slow becasue it is pixel by pixel based. The function is such that
[rgbOut]=MyDisplayXYZ2RGB(NewXYZ, XYZlut,RGBlut);
where NewXYZ are XYZ value for which RGB are to be interpolated. XYZlut and RGBlut are the values which are used to interpolate using cubic interpolation method. We cacluate CIELAB DE and use it as criteria for the rgbOut.
Our image size is 4053x2050 and our LUT routine takes 2hours to complate because uses loop.
My question is that, if Matlab interp3 or some other function can interpolate like this? Will it be faster?
Can you please guide me how can I use interp3 for this data interpolation? Actually, I do not understand how can I input my LUTs in the interp3. Thank you.
Seoncd option for me, If, I hare my matlab code, can be fixed to take whole vector instead pixel?
Note:
NewXYZ is mx3 dimension
XYZlut [X Y Z] ] and RGBlut [R G B] are nx3 dimension
rgbOut must be mx3 dimension having R,G,B values
----Sample data
XYZlut=[ 0.085954 0.097486 0.13636
0.19496 0.16676 0.62822
0.30154 0.19816 1.3158
0.68737 0.35471 3.4668
1.5699 0.69064 8.4565
3.052 1.2449 16.831
6.2012 2.4245 34.592
12.034 4.5791 67.462
22.04 8.2393 123.88
39.937 14.723 224.99];
RGBlut=[0 0 0
0 0 19
0 0 38
0 0 57
0 0 76
0 0 95
0 0 114
0 0 133
0 0 152
0 0 171] ;
NewXYZ= [62.10263 66.39005 169.7117
76.8211 82.24026 201.0852
73.61543 78.18117 195.2129
71.9406 76.70645 190.4692];
  댓글 수: 2
KSSV
KSSV 2019년 4월 16일
My question is that, if Matlab interp3 or some other function can interpolate like this?
Very much possible...
Will it be faster?
Definetely it will be faster.
Abdulllah
Abdulllah 2019년 4월 16일
편집: Abdulllah 2019년 4월 16일
Thank KSSV for your reply. Actually I tried interp3 but I could not get success in using interp3. Can you please guide me how can I use interp3 for this data interpolation? Actually, I do not understand how can I input my LUTs in the interp3. Thank you.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Interpolation에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by