TA的每日心情 | 衰 2019-11-19 15:32 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 ubeautqq 于 2021-4-25 18:15 编辑
" O/ D) y2 p7 _0 x0 j: n
% Y! `2 U% N6 Y0 F/ H0 [一、简介% w+ c& k" q6 b0 M. @
支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。+ t0 T0 m6 X" |4 `
4 ^" p' G9 a9 s- Z
1 数学部分
( C4 N' U# K. X9 z0 F% j; a! R6 B& h) e0 b1 l2 x
1.1 二维空间
. l {9 L* \7 q- i& w" C
3 {: K0 L5 L5 T' M! A
4 x. h7 @) g% {' }
; G( h& \4 V9 I
" T* o9 J2 v) q! x2 Q1 f+ e( U( p$ \- r; A, }7 z6 d
. u# Z* _1 ?% t9 r* V8 `7 l( M% c! R
# I0 v. |8 ?9 s" F
) o5 u! }4 q- e6 r0 K" B8 r
! U) A& a* i( G5 b
9 e2 W4 s4 C2 m9 Y
5 v8 ?4 `$ o- V6 x8 X1 Q
1 T; j; c/ Y- y$ K4 M" U* t$ c1 _3 {" k4 ^
( A p' H0 `8 e3 O3 V1 G. ^
, s0 @& M4 O& X- q- P7 s
& ]- f! _; u6 E, {* e3 O: X
( t8 v' A g2 ^$ f- w8 M
1 O/ l8 d# m( z* j" y6 w0 ]/ w; }0 E7 Y0 v8 R
, _+ @3 n' ?& V3 ~! D
6 O) q* d9 t4 w% Z# Q6 ?! `' _- L
2 算法部分# X( I/ }9 t+ J# O$ \. C( }$ ]
) O/ h9 E$ b) x# i6 q, n. _& @
! X1 i/ R. F: |* s* ?; Q: `" }9 S/ E8 p' Y
! H8 N# N y5 h, j3 J$ Z/ M9 }9 }4 O' I9 h! @ W: F0 L' F$ s
) m2 @* [- S& a; b
& E+ w; o: T7 Y. ~2 Q0 A* `
* Z7 r' ^" x e* j
* K; U2 H# e* j. ]2 u3 Q+ r$ y- D. X3 [
' ?0 ~" r3 h+ z二、源代码 a9 z) {* ?5 w8 C3 X: J; i5 k& B1 {
6 t) ?3 T( s5 l/ t+ D- N- M, x- 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 );
- ' Z& _4 `9 A! W) b B. g
. u z% a0 G9 l/ U1 S) w; t) [/ { u
|
|