資源簡介
Matlab的LBP算法,頭一次傳資源,就0分分享出來吧~

代碼片段和文件信息
%?GETMAPPING?returns?a?structure?containing?a?mapping?table?for?LBP?codes.
%??MAPPING?=?GETMAPPING(SAMPLESMAPPINGTYPE)?returns?a
%??structure?containing?a?mapping?table?for
%??LBP?codes?in?a?neighbourhood?of?SAMPLES?sampling
%??points.?Possible?values?for?MAPPINGTYPE?are
%???????‘u2‘???for?uniform?LBP
%???????‘ri‘???for?rotation-invariant?LBP
%???????‘riu2‘?for?uniform?rotation-invariant?LBP.
%
%??Example:
%???????I=imread(‘rice.tif‘);
%???????MAPPING=getmapping(16‘riu2‘);
%???????LBPHIST=lbp(I216MAPPING‘hist‘);
%??Now?LBPHIST?contains?a?rotation-invariant?uniform?LBP
%??histogram?in?a?(162)?neighbourhood.
%
function?mapping?=?getmapping(samplesmappingtype)
%?Version?0.1.1
%?Authors:?Marko?Heikkil?and?Timo?Ahonen
%?Changelog
%?0.1.1?Changed?output?to?be?a?structure
%?Fixed?a?bug?causing?out?of?memory?errors?when?generating?rotation
%?invariant?mappings?with?high?number?of?sampling?points.
%?Lauge?Sorensen?is?acknowledged?for?spotting?this?problem.
?
table?=?0:2^samples-1;
newMax??=?0;?%number?of?patterns?in?the?resulting?LBP?code
index???=?0;
if?strcmp(mappingtype‘u2‘)?%Uniform?2
??newMax?=?samples*(samples-1)?+?3;
??for?i?=?0:2^samples-1
????j?=?bitset(bitshift(i1samples)1bitget(isamples));?%rotate?left
????numt?=?sum(bitget(bitxor(ij)1:samples));?%number?of?1->0?and
???????????????????????????????????????????????%0->1?transitions
???????????????????????????????????????????????%in?binary?string
???????????????????????????????????????????????%x?is?equal?to?the
???????????????????????????????????????????????%number?of?1-bits?in
???????????????????????????????????????????????%XOR(xRotate?left(x))
????if?numt?<=?2
??????table(i+1)?=?index;
??????index?=?index?+?1;
????else
??????table(i+1)?=?newMax?-?1;
????end
??end
end
if?strcmp(mappingtype‘ri‘)?%Rotation?invariant
??tmpMap?=?zeros(2^samples1)?-?1;
??for?i?=?0:2^samples-1
????rm?=?i;
????r??=?i;
????for?j?=?1:samples-1
??????r?=?bitset(bitshift(r1samples)1bitget(rsamples));?%rotate
?????????????????????????????????????????????????????????????%left
??????if?r?????????rm?=?r;
??????end
????end
????if?tmpMap(rm+1)?0
??????tmpMap(rm+1)?=?newMax;
??????newMax?=?newMax?+?1;
????end
????table(i+1)?=?tmpMap(rm+1);
??end
end
if?strcmp(mappingtype‘riu2‘)?%Uniform?&?Rotation?invariant
??newMax?=?samples?+?2;
??for?i?=?0:2^samples?-?1
????j?=?bitset(bitshift(i1samples)1bitget(isamples));?%rotate?left
????numt?=?sum(bitget(bitxor(ij)1:samples));
????if?numt?<=?2
??????table(i+1)?=?sum(bitget(i1:samples));
????else
??????table(i+1)?=?samples+1;
????end
??end
end
mapping.table=table;
mapping.samples=samples;
mapping.num=newMax;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2743??2013-03-02?10:52??getmapping.m
?????文件????????6022??2013-03-02?17:42??lbp.m
?????文件????????1665??2013-03-06?17:26??lbptest.m
?????文件????????6678??2013-03-02?19:37??test1.bmp
?????文件????????6678??2013-03-02?19:37??test2.bmp
?????文件????????6678??2013-03-02?19:40??test3.bmp
?????文件????????6678??2013-03-02?19:40??test4.bmp
?????文件????????2064??2013-03-02?19:13??LBP.txt
- 上一篇:MATLAB隨機拓撲生成源碼
- 下一篇:系統辨識部分算法matlab程序
評論
共有 條評論