TA的每日心情 | 衰 2019-11-19 15:32 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 ubeautqq 于 2021-4-25 18:15 编辑 : c+ ^; A: A0 a b- x
0 F- W( h8 L7 L# Z一、简介 G/ g8 {. }% [- L0 ^
支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。( a7 q b* T! c1 ?
1 e7 d) m- n% C0 ~% f8 `& x1 数学部分
3 y) @* z* _$ P5 K {: v' l) _6 _' Q! I5 }! n5 v
1.1 二维空间
" N) K) K- \/ k" Y3 c# u) T G
6 j; Y w. A; ~& _$ d8 o* b0 ^
. r4 _. c$ e& q" \; b+ A/ A9 i
* S. G- p5 @! j9 \' F" @
4 ?1 i% m/ k3 c! Z
" b% P9 D9 v8 U# C6 }5 r0 j0 k7 n) h7 l
, O7 l& R6 _' X3 Z' g
T" B# {; T0 F
2 n* h9 k$ e" c; H; T( v* E4 P
( Q; E" g# p. G1 Z8 D9 A9 y3 K- @/ g; ?' p
. |7 A; C* O. `: C4 ?7 x- f
. q) o2 Y- ~* q
; D; F) _$ X% P5 z/ }; a/ S' @
! D# o8 }+ i. ]/ _! X
$ T1 U3 q2 [9 [( v$ W O4 {
- M4 A P0 y) u. O: E6 D( t
5 Q6 y* Y0 p: L, T3 o4 R! v- x# d% o4 o' w0 O. M x
5 s) G4 `) s: s2 ]. s4 R" r& M& N$ \, [0 t8 f
3 i& h. I9 X2 w3 Y9 P
, Q9 ?7 }9 X8 h" @% h+ v) V7 ?& Z% ?2 算法部分9 h+ @6 X% H6 m# |: c% n
& l' u j3 A9 L" Q9 b+ e
2 r6 T c* F' R4 J* T6 }
& [, f" G+ k8 S$ w* a" M) u
4 W/ E9 G$ J4 L% ~& v1 t7 Z F! s$ T6 T1 j
6 ~: C# Z% ]$ h$ a9 G2 Y6 l
$ _0 J# e+ b" B8 w
2 G4 E8 p6 ~ H. ]8 d4 j4 `
8 V9 o. T& M+ r6 P& I4 f. C
4 w" D. k- s3 }" ~) V8 i8 }- ?/ x" ?" j/ F" N: m
二、源代码' B. G5 F5 c/ P5 n; Z( c* w; |0 ^4 m
+ D2 x: B8 |0 \7 r( X* v
- 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 );
& D7 t" {0 F% o, b P$ I) Q7 F 9 Y: y$ w, n$ B- z
' |) B& d: y6 u+ v; j& R% \
|
|