TA的每日心情 | 衰 2019-11-19 15:32 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 ubeautqq 于 2021-4-25 18:15 编辑
# o+ O3 G; [+ U" r4 f9 t# l9 W; h+ g1 {/ D( Z/ ^
一、简介1 o; k; g8 P) @5 b$ [
支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。/ y: _! i0 Q" X* M
0 g# n, T; I9 r; J. y9 Z* t
1 数学部分: I3 O3 i% { ~
& s8 R# ?$ o$ s! N' M0 X1.1 二维空间
% v+ \. {0 z; |3 o# p2 y' Q6 d1 m- h5 M! t4 q8 a$ T" f# f4 @% y
. Y3 r7 y& T" R4 Y% y6 l2 Y
: z' F! I! `2 I( }
* p9 j" ?- U, _" T1 W2 v% T N8 \8 v/ T. u6 P; q
1 N5 Y' K, }$ N- q* l- p' L e e$ w
% x3 R/ R/ z6 b6 e* I* h1 Y: P
# y. V/ P+ ~5 w
$ D& M/ ~7 `, p5 s" o% O8 O0 G3 q* r- {$ d4 T2 W
1 G+ q- s% j9 Y. K
5 S6 R8 [( x. F$ F+ s; h2 _$ C
+ @) V( `) k }% U1 {- Q, V8 G
; _, d: b2 G, e, m
l6 L' }3 `) N# u1 f6 b0 i' G9 |9 i( K
! i" `/ s5 o& p8 g. m/ Z
/ u. C7 n8 T1 J( H/ i2 g* O/ ~6 o
8 V2 l9 {' W- Q* u" q" F/ i0 J. { }5 ^3 v6 F
2 算法部分
3 j. p& V$ |3 Q7 G, r {1 T7 H4 U$ X/ `
! W( h% C+ X' T% f }/ T1 K1 V
7 K ?* y1 U. v/ G+ _
# s" u9 n) D$ O" l
: i3 L6 g; C7 ?0 I+ o! Q
( r. u! }2 M. c+ q/ q
! z# b& l" o6 o8 N+ Z
6 _2 m- x& K4 m: T- Q5 x5 m. g/ d+ G, ^( M
& `/ `0 O) T' ` J" a7 A3 v/ Q* T9 b3 b+ u
二、源代码/ w' U4 }- g" I2 c* A
1 J1 }6 X- e5 X1 Z
- load ./CID2013.mat; %% You can also load the files of 'CSIQ.mat' or 'TID13.mat' if you want to use CSIQ or TID2013 database for training.
- train_data = Data(:,[1:5]);
- train_label = Data(:, 6);
- model = svmtrain(train_label, train_data, '-s 3'); % train
- %img = imread('.\input\TV_VR\Fig.7_RTV.jpg');
- img=imread('img004.png');
- disim = img;
- if numel(size(disim))>2 %% Is a rgb image ?
- dis_file_gray = rgb2gray(disim);
- else
- dis_file_gray = disim;
- end
- i = 1;
- %% mean value
- mean_tmp = round(mean2(dis_file_gray));
- Value(i, 1) = 1/(sqrt(2*pi)*26.0625)*exp(-(mean_tmp-118.5585)^2/(2*26.0625^2));
- %% std value
- std_tmp = round(std2(dis_file_gray));
- Value(i, 2) = 1/(sqrt(2*pi)*12.8584)*exp(-(std_tmp-57.2743)^2/(2*12.8584^2));
- %% entropy value
- entropy_tmp = entropy(dis_file_gray);
- Value(i, 3) = 1/0.2578*exp((entropy_tmp-7.5404)/0.2578)*exp(-exp((entropy_tmp-7.5404)/0.2578));
- %% kurtosis value
- kurtosis_tmp = kurtosis(double(dis_file_gray(:)));
- Value(i, 4) = sqrt(19.3174/(2*pi*kurtosis_tmp^3))*exp(-19.3174*(kurtosis_tmp-2.7292)^2/(2*(2.7292^2)*kurtosis_tmp));
- %% skewness value
- skewness_tmp = skewness(double(dis_file_gray(:)));
- Value(i, 5) = 1/(sqrt(2*pi)*0.6319)*exp(-(skewness_tmp-0.1799)^2/(2*0.6319^2));
- test_label = 0;
- [predicted_label, accuracy, decision_values] = svmpredict(test_label, Value, model);
- Score = predicted_label;
- disp('Score:');
- disp(Score );
0 M( k ` ]4 \+ q' [
$ G* T% p1 L8 C
) W6 u Y* e1 V. G' F |
|