- 489 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 16:18:42 ]
- >>488
% Prolog ならびの要素は画素であるとした。 左下を原点として一次元のならびで表現された画像の区画変換(N,_原画像,_並び替えた画像) :- Len1 is N // 2, findall([_区画番号,_行単位の区画],member_L(1,_区画番号,Len1,_行単位の区画,_原画像),LL), 区画要素のみ取り出す(4,LL,LL4), 区画要素のみ取り出す(3,LL,LL3), 区画要素のみ取り出す(1,LL,LL1), 区画要素のみ取り出す(2,LL,LL2), 一次元ならびの写像(LL4,LL3,Y), 一時元ならびの写像(LL1,LL2,Z), append(Y,Z,_並び替えた画像). 一次元ならびの写像([],[],[]) :- !. 一次元ならびの写像([L1|R1],[L2|R2],[L3|R3]) :- append(L1,L2,L3),一次元ならびの写像(R1,R2,R3). 区画の要素のみ取り出す(_初期区画番号,LL,X) :- findall(L,member([_初期区画番号,L],LL),X). member_L(M,M,N,Lx,L) :- length(Lx,N), append(Lx,R,L). member_L(4,M,N,Lx,L) :- length(L1,N), append(L1,R,L), member_L(1,M,N,Lx,R),!. member_L(M1,M,N,Lx,L) :- length(L1,N), append(L1,R,L), M2 is M + 1, member_L(M2,M,N,Lx,R).
|

|