很多时候,初始化halcon窗口控件时不知道窗口大小,
在需要重置窗口大小时需要使用这个函数:set_window_extents,改变窗口大小,适应控件大小
dev_set_part
read_image (Image, ‘./1/Image_20221104152002350.bmp’)
decompose3(Image, Image1, Image2, Image3) //ImageRed, ImageGreen, ImageBlue
trans_from_rgb(Image1, Image2, Image3, ImageResult1, ImageResult2, ImageResult3, ‘cielab’)
intensity(ImageResult1, Image1, Mean1, Deviation1)
intensity(ImageResult2, Image2, Mean2, Deviation2)
intensity(ImageResult3, Image3, Mean3, Deviation3)
- gamma 2.2
- Mean1:=Mean1/255
- Mean2:=Mean2/255
- Mean3:=Mean3/255
- if (Mean1 > 0.04045 )
-
Mean1 := pow(( Mean1 + 0.055 ) / 1.055, 2.4)
- else
-
Mean1 := Mean1 / 12.92
- endif
- if (Mean2 > 0.04045 )
-
Mean2 := pow(( Mean2 + 0.055 ) / 1.055, 2.4)
- else
-
Mean2 := Mean2 / 12.92
- endif
- if (Mean3 > 0.04045 )
-
Mean3 := pow(( Mean3 + 0.055 ) / 1.055, 2.4)
- else
-
Mean3 := Mean3 / 12.92
- endif
X := (0.412453Mean1 + 0.357580Mean2 + 0.180423Mean3)/255
Y := (0.212671Mean1 + 0.715160Mean2 + 0.072169Mean3)/255
Z := (0.019334Mean1 + 0.119193Mean2 + 0.950227Mean3)/255
ref_X := 0.950456
ref_Y := 1.0
ref_Z := 1.088754
X:=X / ref_X
Y:=Y / ref_Y
Z:=Z / ref_Z
if (X>0.008856)
Fx:=pow(X,1.0/3.0)
else
Fx:=7.787X + 16.0/116.0
endif
if (Z>0.008856)
Fz:=pow(Z,1.0/3.0)
else
Fz:=7.787*Z + 16.0/116.0
endif
if (Y>0.008856)
Fy:=pow(Y,1.0/3.0)
L:=116.0Fy-16.0
else
Fy:=7.787Y + 16.0/116.0
L:=903.3Y //10.3
endif
a:=500.0(Fx-Fy)//-19
b:=200.0*(Fy-Fz) //14