- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 555340 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 171975
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 18
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
如何用代码画出一幅好看的画, ?% u0 u+ l9 j, ]" O
7 k9 L" X6 J1 g( e0 o
前言
) q8 u' l3 d4 A1 t2 k' E1 Y7 k8 ?2 n随着计算机技术的逐步发展,借助计算机强大的能力进行绘画操作,已经变得非常容易。绘画作品的水平也是越来越高,下面就来看看用编程语言绘画,能搞出什么有意思的东西,相比人类的创作又有哪些值得我们思考的地方。; ~+ m! I) S2 {
% P4 M( I& v* I* I绘画
4 ? s8 |1 l; E$ X) z1 M+ ]- n" g用代码输出类似绘画的内容,最最原始的恐怕就是直接使用 print 函数了。
& v% l# l; g: h1 o1 |, b4 z$ a7 `( Y$ Q/ D; Y
print 输出字符& L9 R* ~. o; _ X
def do_print():8 S5 G' L# A, B5 O- v
print('''
: n1 V+ X; \! E: w. u. J0 k" P* |! A
へ /|& ] y# Y8 E9 C3 ~9 v: K- u0 Z7 X
/\7 ∠_/
; l6 e' A V: r- ]9 H4 {' x4 }$ t% } _ / │ / /
. x6 k9 Q( N G$ ~ │ Z _,< / /`ヽ
8 t: \* S- L& {# p# `( E │ ヽ / 〉
+ P+ a% u+ W2 m Y ` / /
7 z+ f( `$ w7 b) q$ }3 R イ● 、 ● ⊂⊃〈 /
% j+ ~) X6 R4 Z3 V: q () へ | \〈" }% p6 K' ~9 g
>ー 、_ ィ │ //7 F* y: Q: h+ `$ Y) W: v/ v% G
/ へ / ノ<| \\
# Y$ U( U% j- L: `* M2 s) O) t ヽ_ノ (_/ │//
2 G8 h+ K) q, x i2 A& P 7 |/
" N, G/ Q& v3 G1 C$ E0 | >―r ̄ ̄`ー―_' l: N |: _' z) z, W
''')% V* {8 S& B4 l0 c1 w r
1+ x) v* R" x2 ?3 ^
2
! w8 f! P5 V$ ^; v, x3: ?; l; N: r B
4! r( \3 X$ D6 T1 x
5# r; \4 ^; L8 n" w; t
6
) s; r$ {4 q4 s) E# @7! S; C- a+ B1 M7 m' O5 u$ i$ t
8- c6 o$ D/ G& H$ X, E, H8 h
9& v' Z5 u" v7 W( k& x
10
4 k. p" M8 y$ b/ Q: g r11$ U% S7 N2 a& H. j
12
" F- Z3 E, ^8 Y6 @0 I! {2 }138 s- b% g w* y# V& A
140 M! j" _ t6 h. x7 E M
15
h7 S* U5 Q) K1 E% V' t16
7 O- U( R2 ?# z17. N$ }; ~, a+ x/ r
这个方法执行后,就可以在控制台看到下面这幅可爱的皮卡丘画了。
& Q+ q/ ? C/ {& ~% {0 Z
0 |. r! u9 k+ ]: X/ p4 h" W0 z, P9 n0 W6 r$ X
& o" w8 n! a, p, \
这种做法,可以说是完全没有什么技术水平了。想要画什么内容,还得预先编排字符,太麻烦了。于是便有了升级版。, x" a" {9 ]2 ?, w# ?
/ R8 i) X/ H4 G9 Y0 h图片转字符
% L7 A7 _8 e" B9 j5 x- E1 u8 |. m这种用图片转字符,看似没有什么意义,但其实有时候可以创作出意想不到的作品。比如前一阵子的顶流冰墩墩。2 n9 a% I# |4 ]+ {/ X' n
1 J# P Q& M" L- Y8 ~- N) o. c0 v3 h9 M. b. X e% n1 v& F
6 l; _+ d/ Y7 m% H# K! f x3 {: |这种做法的思路总的来说,就是把图片的抽样图片的像素信息,然后将像素信息中关键的亮度信息用特殊的字符串进行打印,效果就是我们最终看到的样子。9 H8 W. X9 i- Q6 x. S& Z$ ^
* L2 z) I9 L6 z; n `5 f
public static void printImage(BufferedImage image) throws IOException {
- Y0 Z* R3 ^2 z- _7 R final char[] PIXEL_CHAR_ARRAY = {'W', '@', '#', '8', '&', '*', 'o', ':', '.', ' '};
5 v7 |$ [/ `- F2 g) t int width = image.getWidth();: H5 G* t \- `* N2 a: [
int height = image.getHeight();
: N, H# O$ v- ^ for (int i = 0; i < height; i++) {
! b( h ~" }2 H8 R2 `, j# {! q for (int j = 0; j < width; j++) {
3 S+ ^+ w5 k* a5 O int rgb = image.getRGB(j, i);' X' ~/ r2 O; \. @7 _7 u8 q& @/ H
Color color = new Color(rgb);9 s0 c& z5 S4 b
int red = color.getRed();8 \; k& {" ]1 C) l
int green = color.getGreen();' M- C, `9 d d5 E! l
int blue = color.getBlue();: f0 W+ {3 @& V. w* j- E
// 一个用于计算RGB像素点灰度的公式. u7 P# c$ v1 H+ D0 D
Double grayscale = 0.2126 * red + 0.7152 * green + 0.0722 * blue;
( h. v# t$ [- H0 r, g double index = grayscale / (Math.ceil(255 / PIXEL_CHAR_ARRAY.length) + 0.5);
& A8 X8 b o0 L% f. R4 v7 L6 W System.out.print(PIXEL_CHAR_ARRAY[(int)(Math.floor(index))]);
. d# ]* [& M }5 A/ [7 D3 P }
7 b" w5 M* ]" [( J System.out.println();
- e$ C* k2 i, t) Q' Z9 N }
$ S: V2 g4 c3 T, Z: e}; z, o" X- s3 P3 y4 T3 `+ c
/ k. C$ \: ^3 |1 @7 y7 K0 B1. k' b# z8 U8 b, o) z, c7 R
2
" \ X' {8 x1 _( d. s. u. ~3: w0 e# ^/ {0 u
4
; b! }# Y, i* |0 p/ E5
% Z) e' N" i C, S62 {" j; D" e4 `
72 y7 P% e, a: A
8: R( H9 Q# k1 N }
9, Y3 [9 e, z% F5 a8 t+ ^
10+ x6 p8 h( l2 e/ s% P- U b* e
11$ c* V2 I& F6 E3 e. @8 G- q
12
2 B0 V) B& W3 h: b2 y3 B3 M13$ _$ }3 v: `( b/ s' r
14: P+ U% r0 V- U% e, k& }1 F6 O _- ]
15
; i6 ^, v9 D9 A1 ?16
6 c* k t) X. D' L' s17
5 k# Z$ m% C6 O+ \18
# V; | E6 V- t$ ?190 Q; s9 A; {/ [ U: L
更多具体实现可以参考 字符作画,我用字符画个冰墩墩 。; j7 W5 M/ D3 \6 y% D
1 B# H. A d9 ?3 x/ z& c2 a; v
使用 Python-turtle 库作图
1 M7 P* D1 U6 U v; A- l下面这几幅知乎用户的回答,可以说是非常有水平了。
2 M' W1 V A. t' q
0 r1 I7 H9 `1 y
- }! n' \/ z- M. p6 H+ F
. O5 ^5 ~/ m% G0 H: [$ Fimport random
) x S0 [6 z/ p% t% v, B. j& Simport turtle: U6 P2 z6 o+ K
from turtle import *1 y' Z# x& s6 n; w+ M! g% X3 Q: N
' p+ p4 R; p$ i2 W; g5 e
t = turtle.Turtle(); r2 r& k" Z$ H
w = turtle.Screen()* Z# N6 \/ A& c% m8 d# W. k& Q
6 l0 |) E) o2 h, c
+ \$ \! ~# u+ L+ m( Z
def tree(branchLen, t):0 C; |/ I( l8 _; {; b) s
if branchLen > 3:
, q3 g: n4 a6 }2 H if 8 <= branchLen <= 12:, h, n( t% K. k4 N
if random.randint(0, 2) == 0:7 a3 i+ ^5 ^+ R8 S' ~9 L
t.color('snow')
+ I4 L& ~! j* F else:
: A" {+ D3 V' U2 p t.color('lightcoral')3 X/ c# X# A4 \1 M, d0 F: G
t.pensize(branchLen / 3)$ j+ C7 Q+ s" b0 j6 ^
elif branchLen < 8:
& J5 @" U9 X0 X* F8 o; e# q" n/ D if random.randint(0, 1) == 0:7 P0 _# {( c/ V- R( R. ]
t.color('snow')
* A" {- e5 U. }& s$ ~: j4 ? else:& I1 Z* I' `4 i$ j2 Y2 ?$ V! {
t.color('lightcoral')
* ?( T, w3 ^7 A d- ]* z t.pensize(branchLen / 2)7 Q7 p+ ~! u6 _" V' U- P4 G, r
else:
5 k7 H" }+ @: G3 ^# K5 c. J% K) s t.color('sienna')3 ?/ k% E; [ a8 d; t) w
t.pensize(branchLen / 10)% Q$ m6 c5 W8 ^( v' f) _1 x, }% s
& J5 J6 e5 o1 L/ G& J
t.forward(branchLen)- L/ ^' t: t1 r
a = 1.5 * random.random(): b/ x- ?; q5 e C
t.right(20 * a)! G$ @ w, t, L/ ~% y4 c9 ]
b = 1.5 * random.random()8 D- F0 L+ P. ?6 o
tree(branchLen - 10 * b, t)
8 L& ?5 r) W6 e2 q7 h t.left(40 * a)
, n, h# @- i: b. b5 M6 F+ K2 w tree(branchLen - 10 * b, t). Q! O$ {- y, m( H) B
t.right(20 * a)4 y- E" |/ P) {4 `0 P% o4 q
t.up()
) n) j/ h1 a3 h! C, l t.backward(branchLen) }. @4 R. m: f0 M% h8 c
t.down()& G% G3 N% @- i& u
$ @+ G5 F2 `4 u
2 J1 }7 y4 F k2 y3 [def petal(m, t): # 树下花瓣
0 X9 s: @, r0 k [! t/ |) g for i in range(m):8 _* U4 l* H, d6 e) @: L% J& c
a = 200 - 400 * random.random()2 }" ^9 X" \" Y9 j+ I6 e K3 E
b = 10 - 20 * random.random()/ O% J1 e$ K% T& Q% \
t.up()# v' x& v1 l* R& x
t.forward(b)1 t1 v2 m& c( X% p/ t
t.left(90)
, v* c9 d2 y$ P" {' g% D8 f t.forward(a)
4 Z/ g, A1 t; L t.down()
' Y5 p3 h8 b; c t.color("lightcoral")
0 G: x5 l% }/ m1 s; i* V/ B6 w t.circle(1)9 Z8 \7 ^% F( i
t.up()
7 A0 J% r( g% w, E3 K) k t.backward(a)
9 T+ ?/ v2 @ y# v7 n% G+ }/ d t.right(90)$ E6 C2 B' @/ j d
t.backward(b)7 H8 S+ z T6 q2 h( S
% N- e5 ], L1 \6 i. k% @5 H( R0 n# S* o, o) t- F% H
def main():
6 ?; V' \7 B8 M8 o4 |# N t = turtle.Turtle()
" t0 K- N6 S" X- s4 k' t1 c5 ~2 ] myWin = turtle.Screen()
3 N$ T: o2 e6 |8 `: b getscreen().tracer(5, 0)( i# [( v$ d8 d& H7 y
turtle.screensize(bg='wheat')
* q' d& j3 ~* O+ G2 f9 s t.left(90)" n. v' ~9 x" M
t.up(). G6 ^. \5 |& ~: i
t.backward(150)2 l) n( ~6 R% X2 ?: L, A
t.down()6 |4 h/ D' c# e! T1 v
t.color('sienna')+ m p" Q4 s1 g$ X1 x
tree(60, t)4 D9 G) H* g, s9 [; L( [- r' K
petal(100, t)4 D& T" [4 U4 E: |
8 g! t" ?7 n" o myWin.exitonclick()
A g+ n5 x- U Q; `$ T
4 u" _7 s' A" A% @! a0 k2 e; x+ d3 \; |7 U, w7 t7 f& d) d
if __name__ == '__main__':& d( y+ {- A; _
main()
7 Z, q3 k9 g& ]9 Y; N
, g! b9 }9 T- m; Q! ^' q$ F
. E0 _: O; C3 k2 n$ {* \1
, B9 s, v7 X+ g- |$ L2: T0 [) T9 ?3 B
3# j4 _0 F+ m2 @( C
4
' @" u; P. E |0 P5! y) C/ a& {$ W% k$ d7 i, `( ~
6
* C; j! J8 S# R% ^; k+ H0 H7
; T }5 S6 I3 d2 Z0 r8" ^( R0 a1 R6 G: ?' M
9
. t, A, R! s8 q+ N/ A/ p6 _& @106 C& M' n- n" [" u7 y# I2 T
11
- b# ?: q" d% @5 v0 j' `12# f7 [4 {- C; g4 L, Y; n, {
139 V8 C! X( A0 l6 L
14
4 Q: e9 [$ B& K+ `2 j. }15* T% t/ S. q3 b, s
168 A- C+ D) K/ s# M% R$ T9 k" n) t0 G* r
17
7 n7 Q* N9 Q; S3 ^1 {18! D) }1 t- F9 k: L
19
" {, x, S% a& u# w7 v1 T) p0 j20
' d* b" x6 G; k* A5 u1 _9 z3 v1 q21
4 P Q( k+ ~! p0 y22
+ k7 ~4 m: X6 ?! l4 S$ E237 S: i, B0 c8 h+ m3 w) j
24: l' C! y2 p- \; o) o/ S( P: I! R
25) }; A4 M4 t. b: k
268 o( Z$ {) V5 l+ l
27
. r- l* _0 f E9 f; {28! h- Y2 S# _: U* n! c( i9 A B
29
0 w, {, X& d. B/ \7 d* T30
" ] [6 N/ j) E" [, p31# ` m( a1 W. P% p7 h
32# D' V" |( e, m! @# [. @) r7 M
33
8 n4 R3 h* P% I4 v* X4 T( P, q344 l" p9 V! n- Y1 s
35 ?/ i0 |$ c [, U+ L1 L
365 e% \& A3 W% b* J$ G
37" P; u- _) ~$ E( Z$ j( C
38
( u7 N* Y$ ?9 k8 O) m394 W/ ?( F7 a( H4 F
40
2 H+ |! B- Y! {418 q! _6 v7 E) j3 \
42
/ R: D1 ^4 @/ Y' w' a( Z43
& t( l: n/ c8 n3 }: H0 N) H, @44' r. a- s1 z9 L
45
( {) ] g; h! j" ~8 z; W467 B/ ?% r5 h$ g
47
a! b, O1 R1 p. [, N48
: {1 [% H1 R+ |# M$ g49
7 i3 n- Z/ E/ [; U/ R50
5 z2 ~0 F5 X; s51$ g7 I7 | h9 r' g3 h
52% E7 l1 k" ]( M% d" C5 R
53# o) a9 ^0 @/ R6 N5 @
54
8 l$ Z% ]6 j Y1 A3 d8 _5 H557 }" a- |( o( F8 b1 A3 p0 C
56$ F) r, M, Z3 N& L
57' `% g. Y3 X6 |7 f
58
; ~9 u5 S* [5 j7 h T3 D' p59! ?; J4 [/ B% C. h* r
60; t- J0 k4 \$ E% c4 o
619 ~1 M9 R1 y1 m% x; L2 V$ n+ [2 T* R
62
- S- _9 ^) d ^, w8 }63
1 E6 B- e! w" W" ~; Z64
* D$ t; X+ u" Q# s* K651 r" f% @* t% b* Y7 f# U0 O
669 A9 t3 R" q3 @3 I& I# t
67
/ w V g8 k& R9 }; I0 z, ?68
# r7 E% O6 N: u2 r6 ?69
, b y& |8 \0 j/ L70 c& ]5 j4 m0 X( e
71* t: G+ f. U8 \/ ?- v
72
- q; O9 R2 K9 x( D735 g) S) c* C; Z! i% Y7 ?8 x0 _
74
* b6 f- T9 x, s8 s# M759 d8 x) N! i# z. Z1 L
9 S2 |. r" j$ j3 e4 z
7 {* ~7 p- z- v; W' G y5 A8 c
2 F9 W3 U, J0 H( C' e, O
可以看到,使用 turtle 库加上强大的数学几何知识,可以创作出非常好的看图像。更多内容可以参考 这个问题
( i* x5 R8 ]3 U% X) K, ^
9 j) G1 {( A4 [( i& ?5 m使用 AI 作画! f' h8 q4 K% F: z1 H- D
ERNIE-ViLG文生图1 O7 c; }# \$ [4 s
使用以上方案绘制的内容,一般都比较刻板,缺少一些人文气息。少了一些人类才能有的特点。但是随着 AI 算力的提升和大数据的逐步发展,已经有很多可以使用 AI 进行作画的平台了。 比如 百度飞浆文心大模型 ERNIE-ViLG文生图 平台。! d: R% }, b) E$ j! M, S6 f
7 D j3 z6 N/ x7 ]6 w+ D6 {import wenxin_api
2 X! H4 M, @& ?# j' N# A; [' T; }7 }from wenxin_api.tasks.text_to_image import TextToImage
+ \" q9 ]" J1 }) W) T* X# qimport secret
/ i( D$ w' U8 l. H/ h* L% y( F, P1 m5 Z5 Y8 J1 ?
* s( ~' x0 g+ F* k; o9 |def draw(t, s):
/ P: y3 G2 b8 }) X; e3 P& J wenxin_api.ak = secret.ak, A- |8 g: ~0 u' x3 L: T q3 o& A
wenxin_api.sk = secret.sk: e B; `5 c. F7 g/ N- F/ H; L" G
input_dict = {
. s, B/ z; |: E {, Y- f "text": t,
9 h+ d- M8 C; @2 ]8 [. {0 `; ^ C "style": s
( }/ [3 N7 i6 |; J8 b5 \ }9 S/ p. Z3 X- G0 u b
rst = TextToImage.create(**input_dict); \' e% S3 ]' V$ O2 {& o
print(rst)# Y2 i% ^2 v W6 X
" H+ d: P7 r; O/ T ^
& C( r) k& j- Y5 U# Y2 r* ^
if __name__ == '__main__':: H" A3 v9 |, o9 A0 X
text = "夏天"" _0 y. Y4 U* i7 N7 }
style = "油画"
- `/ h: Z2 c/ ]5 v9 J, k& w% x draw(text, style)5 ~7 i# X3 p. n- O- F' [5 l
U8 k$ t2 M1 h" U; v
12 w+ e3 K4 \' d1 L
2( h4 g0 i6 h0 K/ p' i
3$ N+ N' \1 E6 b; F& x
44 I3 Z& r1 E) R9 B
5' Q$ Q7 [0 s; c- @' S
6
8 A* H5 u9 c' T6 X+ [4 \! k5 Q7; x; h N& n" e- u
8
) ? d" j( l& `" c, V' P$ o. R9
' X; s# M" i3 g10
" i: `# Q1 Q+ W8 C* y11
. p( s2 U; E6 m6 q. O3 W2 }12
# G2 E+ N# X+ g1 g" b! z13/ L' j! w, q# S5 ^* ?
14
, T. m8 Y3 t1 e; j6 I# V( n' ]15
; [7 H9 p) T4 B+ w; o% V16
: U$ M! h0 H7 H* e17
: f C8 @( P T6 x \1 ]) b184 \' y7 Y* B6 b+ d
192 q( H8 C* }) i
206 o& A3 u& E) c* Q" ^- l9 `$ q
使用上面的代码,就可以创作出 油画 风格的夏天,可以看看 AI 生成结果。
& _3 S! t9 y% `6 A. i6 B2 _
2 p2 s/ h5 \3 U' r& F2022-08-28 12:20:06,785 - model is painting now!,
9 Y. F1 z1 A6 e2 s- taskId: 1062408, waiting: 30s
& w( n. n2 y, C, ?. X; W8 C8 h& U{'imgUrls': ['https://wenxin.baidu.com/younger/file/ERNIE-ViLG/89df26b9853d837d331d626ffa62828fex', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/89df26b9853d837d331d626ffa62828fi4', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/89df26b9853d837d331d626ffa62828f5q', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/89df26b9853d837d331d626ffa62828f30', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/89df26b9853d837d331d626ffa62828fv9', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/89df26b9853d837d331d626ffa62828fa2']}9 q: [ ?3 a6 t$ N- E! P7 |
1
/ q: k- Z8 k5 a: H" W1 U2+ y7 ~: w( X# u3 i U
3. ^0 ?' S+ Q3 S+ K, e" k
可以看到速度还是很快的出不多一分钟就搞定了。可以预览一下结果2 ~6 Y) \9 C+ I! p9 r5 D9 Q
) K3 n& s4 H9 j6 E
' X+ a- {+ Z" r+ A% |" e0 a+ o
" f K) ]# V" x8 N- N* _! A# U% s& a: O# g, e) J
3 `# m# U3 c0 P' A8 [. {$ j
% ?% v q5 }5 p9 L' F' c4 d8 H6 d) k1 p
' ^2 {' Y% g; {可以看到还是很厉害了,水平应可以赶上专科院校的毕业生了,但是作画速度那可是降维打击啊。
5 T5 e- T' _5 n7 [4 z6 I! ~, U
/ Y5 M! n2 D' `# {; V. p) T$ `使用 ERNIe-ViLG 搭配自定义的关键字可以生成 水彩、油画、粉笔画、卡通、蜡笔画、儿童画等多种风格的图片。
1 M3 t! e* b- n7 a6 T5 G5 \% s9 g0 k# Q
可以再试一下水彩画风格的天龙八部 。, Z" E3 }" N A) q! c3 G
Q% Y8 j) G4 ~4 Y' A- U1 s! j- ^3 s9 }
/ @7 }0 E- ~; v4 Q- ^
. w- l; k# l0 Z) _5 i# F
5 F i! ~* `. ]& [- ^. I1 s
' z/ D8 e/ z$ [! s; ~2 ^3 }6 W! ]7 {- V$ U7 \0 I2 w9 e
3 s2 [; l& R; V) C# A6 M6 Y1 ]是不是还挺有感觉的。. G/ h0 R% C9 h, `
1 O! g/ E% k1 C9 aDALL·E 2% e( o* H$ Q+ [% i$ n$ \
当然,说到 AI 绘画,国外大公司也有很厉害的。比如 OpenAI 公司 的 DALL·E 2 。
( b+ ]6 D% L O2 ?: L; c/ S D a, r
比如以写实风格创作一个宇航员骑着一匹马的图像
+ R/ M) s; |+ `; [1 ]0 ]% y4 W0 m( z4 @6 F
1 `1 A. C. L7 y9 a
1 w& ~' k; Q) M3 N8 S [9 T
在换个铅笔画风格的
3 r" X% A& S3 I- t: d/ o$ B0 ~: D# z; a; S# m1 w
$ A5 @ D* H E( L# }4 ?0 c+ G
使用 DALL·E 2 可以根据创作风格,更多关键字由 AI 创作出非常有想象力的作品。可以到 DALL·E 2 的主页查看更多更详细的内容。
# U& X1 X9 J1 n7 K5 k! B
5 j% o# h6 N# j- l/ L( l. r总结
, F+ w: J' B3 L l其实用代码直接绘制图形,还有很多其他方案。比如大名鼎鼎的 MATLAB ,可以创作出非常精良的数学几何图形。
, Y& d: ~) ]' Z0 ^% V) A5 i9 S5 W Q* O! {% K [+ Q
但是比较一下上面的这几种方案,可以说 AI 作画的水平,一下子提升了好几个层次。创作需要的输入越来越明确,越来越简答,越发的人性化。但是输出的内容,却越发的开始接近甚至超越了人类的水平。
& L, v2 x& T0 h" J2 `6 P4 f! I6 w. E1 ^
参考文档
. Z. D2 @; R) o' k字符作画,我用字符画个冰墩墩/ [/ E, C% s0 V" f9 c/ N
大家用Python-turtle库作图画出过哪些漂亮的树哇 ?0 | ?; n* W! Q- N
————————————————0 B6 m( G9 h- k* m) L0 J$ d% U
版权声明:本文为CSDN博主「阎楠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。- x: k! h R- j( ~7 [4 W! w O/ t
原文链接:https://blog.csdn.net/TOYOTA11/article/details/126575202
0 o N$ @) p! b
0 p" R. X: `& _* x! U
7 [3 r% J x. T; \ T4 v, X2 x |
zan
|