- 在线时间
- 7 小时
- 最后登录
- 2015-2-10
- 注册时间
- 2012-3-22
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 882 点
- 威望
- 0 点
- 阅读权限
- 30
- 积分
- 270
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 9
- 主题
- 0
- 精华
- 0
- 分享
- 0
- 好友
- 1
升级   85% TA的每日心情 | 无聊 2015-2-6 09:42 |
|---|
签到天数: 9 天 [LV.3]偶尔看看II 2013挑战赛参赛者
|
B题: z. \# r! R9 j4 T7 Q
主要是应用matlab所提供的灰度共生矩阵
9 C0 I/ p2 z1 c; x0 i; F8 U2 \/ R graycomatrix()0 x2 o3 R E2 }3 p
graycoprops();
5 D+ p5 u4 y: L7 b. H1 s( Y 如果人工干预(例如找到最左边)对于附件1是百分百匹配
' m( c% u+ m- V& Y3 I# D 附件2是匹配出两个大块
! x0 ^. |- @9 N6 F: O 附件3,4,5方法类似" j2 V( u4 P) o W) ~
function [d] = readpic3()/ h' y" i: O# W, K* p
%人工看出 008.bmp 第9张图片 为最左边 将008.改为000 s; a, Q) g' Q# @
%filename = 5 c! P( {0 x4 x% {
dirname='E:\Program Files\MATLAB\workfile';
0 [4 l! Z! L! C8 v. o7 Q5 b9 K& Z8 ]files=dir([dirname,'\*.bmp']);8 q2 G3 U2 [0 p$ ?
Num_file=numel(files);
" B" H0 _$ V0 j! Pdata=cell(1,Num_file);
8 K; u4 B- g5 ]/ j5 { f& U[M,N]=size(data{1});% M = 1980 N = 72+ x, [# o$ V% A
a = zeros(M,N);7 |/ N) Q* R7 P; `: I$ d3 Z: O
b = zeros(M,N);* X) w9 O/ Z; B+ H
c = zeros(Num_file);, i/ E2 D" z6 Y5 j) e
d = zeros(1,Num_file);%存储排序序列, N) N$ u7 M k T# l5 K2 d+ M& T
for k = 1:Num_file
: y/ K4 T. L0 `7 N7 Z3 i data{k} = imread([dirname '\' files(k).name]);
# s* Q' M1 f; d- d3 m9 lend
( S/ q: Y" W- T. H* z2 k. y8 E/ j/ S2 q. S8 h2 f
fid = fopen('数据.txt', 'wt');: L9 P$ K1 e2 O
for i = 1:Num_file. |! O( T4 _+ N' h0 E+ ^) T
a = data{i};, K6 J0 `- x4 K3 @4 \
e = ones(1,Num_file);+ q' @9 |4 Y7 k! Z; d1 A ]
for j = 1:Num_file % 要左右匹配两次
" C( [5 p* ^ d4 _* C6 s b = data{j};( z' ?# ~0 v; a* v( H7 w
img = [uint8(a),uint8(b)];
! b# [$ F8 C( h9 i img1 = img(1:1980,70:74); % *****很关键*****
1 E. o$ Q: s9 }! z glcm = graycomatrix(img1,'NumLevels',4,'offset',[0,2]);4 M' B+ z- g$ u' \/ _9 e
% stats = graycoprops(glcm,{'Contrast','Homogeneity','Energy'});%这里仅考虑三个特征值8 O, ~1 K% r' I, c7 P! u
% e(j) = abs(stats.Correlation-1)+abs(stats.Homogeneity-1)+abs(stats.Energy-1);%每个特征值减1取绝对值
) ]1 j8 R2 h1 i- j stats = graycoprops(glcm,{'Contrast','Homogeneity','Energy','Correlation'});%这里仅考虑四个特征值
! m+ l. k# s$ d( w e(j) = abs(stats.Correlation-1)+abs(stats.Homogeneity-1)+abs(stats.Energy-1)+ stats.Contrast;%每个特征值减1取绝对值. E- c: ~# n1 ~9 F
fprintf(fid, '%f ',e(j));
: a7 Q% u2 P- z& [3 i end, B, Z; m! G" l( l- R2 E# p. d7 L" v
fprintf(fid, '\n');
1 n! u9 X* g& x, | [A,B] = min(e);% A 最小值 B索引 B即为( N/ S% B* i. S
d(i)= B-1;# ]1 p( t1 W9 _% O2 \+ Q
end |
-
总评分: 体力 + 25
查看全部评分
|