在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 564687 点 威望 12 点 阅读权限 255 积分 174629 相册 1 日志 0 记录 0 帖子 5313 主题 5273 精华 3 分享 0 好友 163
TA的每日心情 开心 2021-8-11 17:59
签到天数: 17 天
[LV.4]偶尔看看III
网络挑战赛参赛者
网络挑战赛参赛者
自我介绍 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
群组 : 2018美赛大象算法课程
群组 : 2018美赛护航培训课程
群组 : 2019年 数学中国站长建
群组 : 2019年数据分析师课程
群组 : 2018年大象老师国赛优
如何用代码画出一幅好看的画
t% T5 z- l2 |4 s 9 S3 w' @, h5 p
前言
6 M$ Y9 p% f4 a9 A9 l A# c 随着计算机技术的逐步发展,借助计算机强大的能力进行绘画操作,已经变得非常容易。绘画作品的水平也是越来越高,下面就来看看用编程语言绘画,能搞出什么有意思的东西,相比人类的创作又有哪些值得我们思考的地方。5 C9 J v+ G& ^( c* i; X5 H& }3 |
4 v M6 h* j# E! M( t8 {6 `$ K$ @
绘画7 D2 s( K+ u; G! R" ?
用代码输出类似绘画的内容,最最原始的恐怕就是直接使用 print 函数了。
! ^2 k3 @ X. o9 E! Z6 J8 j
" [/ `+ |3 m7 J print 输出字符
& v4 L& W' A3 n7 c: ^ def do_print():
: M+ H' y0 ]/ a3 z v" N$ q print('''9 f* M& T9 T4 J
4 m2 B. g: A1 c, ]5 S+ ~
へ /|" t' R& N. A L
/\7 ∠_/0 z( R9 R- k" y: ]" h
/ │ / / C- B' e1 G/ T0 O6 x
│ Z _,< / /`ヽ6 t! x4 ?" l! B: D3 l8 z% Z
│ ヽ / 〉* I& a9 [& z, @ f7 w
Y ` / /
+ m# N# e% G" }, g" u イ● 、 ● ⊂⊃〈 /
/ p$ k+ S) T* n () へ | \〈
& N- D' N9 C1 y; C6 \( v4 X >ー 、_ ィ │ //
V7 M, X- x4 i / へ / ノ<| \\
9 V* K1 H5 ^# w r ヽ_ノ (_/ │//* N7 _3 ~/ Y0 j" A; H. K' {! v
7 |/
0 D, A; X- ^5 c) a/ s >―r ̄ ̄`ー―_
; I0 N; r- B1 t* C2 }6 p4 ^# K0 v ''')6 b9 @6 T b' g* r# n( O
1
6 S$ r6 h# v; c7 X; z 2) f; D3 |5 K0 T/ b! a8 C7 k% R
3( `% S. F6 M5 G. ~. y4 R( k
4' @. z% N4 a7 p5 P4 r. O! Q5 F
5
/ E$ v" T: d$ L7 v8 X# T 6
: ^* ]" E$ g. U( E 7
' I$ A h7 L, S5 k( e: G/ Y 88 F) z" q, Q) b6 d3 M3 ?
9
H6 I0 x1 y9 k# t2 n! I7 S 10
r, k- ?$ Q5 R! r' l+ Y3 N 11
3 y% T6 x+ q- q# R; n 12
( H/ k1 R4 w0 c7 V7 k' f6 _ 13
8 t; q. O9 b+ y/ W 14
% t$ z# e0 m4 v/ U8 b 15
+ {, a' d) j3 c/ D1 W8 d 16
: |7 D3 ~) @9 g5 n( [( V 17
: g. ^3 [) w k$ D0 {+ c6 A, P 这个方法执行后,就可以在控制台看到下面这幅可爱的皮卡丘画了。" w- E: a; }* E! d# D
3 V% q! E2 g3 E! m0 }( @
6 V$ c- i2 {6 a( \$ _ - w4 H5 d! ?: L! e0 u
这种做法,可以说是完全没有什么技术水平了。想要画什么内容,还得预先编排字符,太麻烦了。于是便有了升级版。
9 n0 M4 s$ n5 r% i/ k1 ]& d % ^8 ~) ]" b- A1 k
图片转字符8 m3 @0 r% X( a6 J6 z r# y6 i
这种用图片转字符,看似没有什么意义,但其实有时候可以创作出意想不到的作品。比如前一阵子的顶流冰墩墩。
4 J& O t& `, j; T0 L" k
: P0 V# x. z j: f6 v 3 D: @ G6 f( f* }0 `6 B
7 g* P* \; Z7 w% {% p
这种做法的思路总的来说,就是把图片的抽样图片的像素信息,然后将像素信息中关键的亮度信息用特殊的字符串进行打印,效果就是我们最终看到的样子。, x; Y2 s5 m. `' i7 ?9 C
& N' Y. J* a5 Z$ e! V public static void printImage(BufferedImage image) throws IOException {
' r P# N1 q7 M# v7 a final char[] PIXEL_CHAR_ARRAY = {'W', '@', '#', '8', '&', '*', 'o', ':', '.', ' '};
' R7 Y2 M# w, z1 s& I int width = image.getWidth();8 k( g. t& R1 b1 y8 G% [
int height = image.getHeight();7 I \) ?$ ]3 Y" L7 k$ z9 ]! A$ s
for (int i = 0; i < height; i++) {
1 I" s$ b2 |: h6 G3 _! ? for (int j = 0; j < width; j++) {
4 |8 _* L$ X" m; _ int rgb = image.getRGB(j, i);! f" Y9 T* u. r; b$ p; k. r
Color color = new Color(rgb);
# c* S2 b! R% \5 [- T int red = color.getRed();2 s6 @; w) n* Q% I; S1 e* ?! X
int green = color.getGreen();
: U+ r3 f( w) m# _. z int blue = color.getBlue();
; V6 A& D8 Z# q0 H0 S+ p9 c // 一个用于计算RGB像素点灰度的公式 F6 q, I. |8 ]4 k/ a9 i# J4 q
Double grayscale = 0.2126 * red + 0.7152 * green + 0.0722 * blue;
* w$ ~* l' R, l+ @+ b double index = grayscale / (Math.ceil(255 / PIXEL_CHAR_ARRAY.length) + 0.5);7 y! c3 l) }. q" e+ I6 J% n
System.out.print(PIXEL_CHAR_ARRAY[(int)(Math.floor(index))]);0 R7 B! q& X/ t. \
}3 ~+ w; T" o2 h1 a( h7 l
System.out.println();& ?- |! ?- ]0 \+ O3 p! p+ H# I
}2 K0 o) W- s& Q- A2 ^
}% Q/ v1 {- n/ r$ d
) g' W R, V: z. @8 q/ E 11 }" U, E, x& q6 Q% L9 x# u: w
2
5 w; `- H: K+ P 3
9 `$ N9 {1 d) Y" `4 W# J1 a 4
; f" k( t3 f* J2 s" X. E 50 ]2 F5 j) u" s9 e1 b
6
9 F' o+ c6 [0 ]* N9 k* f U 7
- p; \. u3 E; l3 @& X 8' r6 Q* a) V( U) y Z6 \5 l
9: {0 a: g: ?8 O" Q8 W, {$ n0 _6 z
10& R0 M( k- Q' M" D& n
11. O8 I- K; l: t# m& W, r6 Z( _
12
+ J: u3 L! u8 ~- F" ]/ s6 m 13
9 S# s# \, \$ h3 ~' p: s: y0 H) f 14
- e/ `/ @1 u- ^, B+ [* s 15) k; I! z; i( p! o8 ]- ?/ M
165 T, X& O4 n& M! u0 w, j$ p! ^
17( [4 f& @5 G; P( v6 W
185 ]2 z9 O# d: z$ v* G
19
: k" {; G8 D, D7 S! {( F+ ] 更多具体实现可以参考 字符作画,我用字符画个冰墩墩 。
8 a1 }1 f- G5 x' F# ^+ C! r' k( G) Y o' F* E5 m( X! }2 n; s8 e% ]3 s
使用 Python-turtle 库作图
$ K- b& S6 W6 b& q 下面这几幅知乎用户的回答,可以说是非常有水平了。
0 c, P/ ]+ `3 J! m Y
& H3 Y r; h1 I Q/ g9 u
7 R* X: V6 z& H B1 M, N
: C6 D6 T) U: _6 C2 Y5 ]( ]- a import random
/ v6 I9 b) d# X4 C1 j2 { import turtle
: B; O7 ]; N! }' o# ] from turtle import *
2 i: b2 X2 i8 g8 p7 i( b
2 \1 ^) Y, a i( y' G! e$ x9 e t = turtle.Turtle()
( Y' Y* z$ J0 E: X6 s+ b w = turtle.Screen()
* p& @- j2 h. A M
# ~; S' v3 ^' V, T' e% R ! `2 J- J1 o9 j2 B' P7 j& K% v7 a
def tree(branchLen, t):( N8 r; A: m" {$ i7 ^$ W. b
if branchLen > 3:+ T$ e! j: ?, b- C( ~3 Q- O3 {
if 8 <= branchLen <= 12:
1 A6 l j; x) X. a if random.randint(0, 2) == 0:
# W+ e# `& M( f, i6 z5 j- K6 I' V t.color('snow')
. a2 o: f7 z2 r7 n0 m+ z- e else:' c) s2 e& R; x0 o4 }5 }# b
t.color('lightcoral'); _/ }( M0 R M- d: K
t.pensize(branchLen / 3)
& D2 c& h2 g, K% e/ F4 f# k elif branchLen < 8:3 ~$ ` X9 F; T5 [, `
if random.randint(0, 1) == 0:, a2 U# u" X' i" A% t0 @0 L
t.color('snow')* P, L4 @( e& f. `1 _* Z
else: J( v3 g( s- j1 e
t.color('lightcoral')7 R* n: C" f$ h* B( |1 l6 Z
t.pensize(branchLen / 2) y1 R- `% e+ Y$ ^( b6 s2 Q5 T, o
else:
. B, I# l, P$ q# |2 ? t.color('sienna') @+ k; X3 [" @8 @% u7 i
t.pensize(branchLen / 10)
# w9 i: J" S- e6 P
! c! A, i) o" x: ] t.forward(branchLen)6 P2 v" D# o) @' F! _. W
a = 1.5 * random.random(). @( |' {5 i) ^) r3 u% y: n
t.right(20 * a)
7 `1 u- c. L& V B b = 1.5 * random.random()
$ f4 n' J/ L' }: B; l! ^ tree(branchLen - 10 * b, t)4 V5 Q7 n: o1 d q
t.left(40 * a)
* I& E6 w, [! S- D2 H Q tree(branchLen - 10 * b, t)0 b3 ]) \0 O4 |- m9 K
t.right(20 * a)( o6 o3 l Q7 M2 J+ D4 \
t.up()
( M2 J ^' h0 } t.backward(branchLen)& X7 q% R1 s; T1 x
t.down()
; V) ` y" w, z ! |7 V9 p( g& O; a2 M
. V2 q* L/ V/ {( D1 D def petal(m, t): # 树下花瓣
4 z+ s; j* P4 y$ `, |& J4 [ for i in range(m):5 F% B" r/ m! P
a = 200 - 400 * random.random()
5 D; Q O7 V4 F+ v b = 10 - 20 * random.random()
1 f0 b& S; e% L) C1 ?* p; E% W' n& Y1 D t.up()' s+ T, c! I3 n8 o% [
t.forward(b)* `( m$ J. ]! ^! O' P% B3 x# v+ s
t.left(90) Y+ h3 W* x z. I6 u; d8 [
t.forward(a)
+ g0 G4 m3 p* p6 }. ~) S- B* G t.down()3 E* A8 y; \$ M e) E
t.color("lightcoral")- C+ B y- w4 W2 [% j
t.circle(1)7 ?# H; |2 j' i7 Q& M. v
t.up() X6 K" S5 I o" ~
t.backward(a)4 W' {$ @; j; w1 [6 G: f, u/ C
t.right(90)1 v4 L! G1 \5 t V: \
t.backward(b)* c5 d! M( b6 D& w7 h
- B4 O+ I/ p, y8 ~* n
* c3 `8 c+ |; b" `+ w6 R9 `0 ^ def main():
; J9 } P! Z7 G t = turtle.Turtle(); x) J# B: }* c
myWin = turtle.Screen()
$ i& ~$ j6 r% V* n; R' u getscreen().tracer(5, 0)) e) f6 u- S. a F/ w3 \
turtle.screensize(bg='wheat')! N, S. ^3 P/ j2 R+ q
t.left(90)
. \) b. A* X1 L# f! Y' [ }- x t.up()
! K' G* D1 Y5 ?3 D* x4 c$ I t.backward(150)5 U7 s! I s3 c! _+ o% x
t.down()/ X8 d5 P# X0 w: b; X9 X
t.color('sienna')
7 R- p6 S. c. Z4 X% i& h tree(60, t)+ e) l2 I! \! M' ]- I
petal(100, t)/ a+ A4 Y! K1 U m( D5 `
# c! S; H2 A( E5 g myWin.exitonclick()8 g2 y) p F$ V1 t% i) F
3 d Z2 U+ q2 I% ^
6 l2 l1 z( c7 e# t if __name__ == '__main__':
& @2 X3 k7 n* e& f main()
1 E% G$ c8 P- d
D) ]% |: ~5 [ q. t1 |/ w
F* r' s2 k; | 19 Z# V6 k9 k2 d2 G6 G
2
6 H' x: e7 ? y! ?& v 3
+ g0 ~3 U9 I# \+ r 4$ }' z5 u7 d9 H: Q& D* F" U' f
5
; B3 V. l5 y w( y/ V3 P' J7 s( _, w 6
, C+ S K# q9 l) i" B5 ^5 o 7
1 V$ v, X* X3 W9 ~8 Z5 j, w 8
3 N9 g6 H- M: Z* Z2 C 9
5 p* D0 d6 `' `9 I* B0 }8 p, ^ 106 F8 ]# ~! O) S: W9 O
11
! i. q: u( m f, { 12
' r" @& I3 ]# _$ f* { Q/ O) U 135 a' [/ }8 M( B. [0 u" b
14: R x6 I# F% [
158 @6 I4 r f% m
16
/ X3 B" X, w/ a) L9 U5 R 171 M8 ~$ l; [; ~" x/ b$ N9 {7 O
18, E2 Z: w. n! ~) ]; d
19
! I* }# r8 }5 D: T# q: H5 f 20
$ U. e6 h: `% u$ g4 {- y8 n( k4 O 21
) s5 f& g' M1 k! h" y: v 22
1 d8 X1 E5 M7 P0 j0 n 23
/ `: ?7 ~! H- u/ } 24
3 D( g" U2 w7 } 25
) Q/ e9 |! a* @5 b8 v2 ` 26
8 B3 z" V5 Y: c; F& N 27 N; n5 i( s* S8 l5 |# v$ k
28
c% n0 J! Z5 K; m/ D' K/ p 29
' _1 O" M, @- C9 E6 N 30
1 z, Y0 J: f Y3 p 31# o0 u% Y7 b& j X7 a
32 F' n1 i( J8 N( c
33
. A4 `$ x8 E/ M9 _5 F( o 34
3 }1 c! s8 _& r6 Z 35
8 O1 p- @- j( |( `/ t% @# y 36. H+ S. N" Y0 V& ^) C! _1 }1 s
37
+ i; x' O; J1 s6 |& G 38
& L2 r+ K3 S/ } 39$ r; s% D- l6 e. i" q6 @0 a
40
a* y5 F4 ^1 T c8 A6 l3 s' i4 K 41
: Y! C' I/ G( o G 42$ D/ G: H4 ^- x, D M% X+ [
431 @& |2 c+ v; i( [
44
; l4 p5 F6 b- i. h5 c 45
5 n9 w6 L" w5 } 466 b* T/ N2 [5 l. W! j* ^ G
47
) @8 b& _7 V5 y+ B1 T, g 48
1 k# {5 |0 `% D 49
9 N5 ?* n7 v. { Q2 J b0 E; A 50
# I% b# A2 ^+ r+ h 51
$ ~4 |6 O, P( M2 c3 d i: D. ]& d 522 g- _! `! X- ~" d
538 h# _4 n+ r( w; |3 e6 P; o
54
) I4 a# C/ \$ C, c/ G 55
1 z w; _2 @! Y$ y8 b 567 C& I4 N% M7 Q* V
57
- z' T( N0 D: @/ q# ?- a 58
4 D( _+ j Z! Q 597 }- g. M) D7 s; }' V
60
/ D4 S" Q) F1 N& `2 M2 |' P 61
; }8 q- _' l o( X 629 h! U- X2 z$ ^& n' Z
637 \; J5 [4 ~* P( v. b- o* n
64
& p7 B3 {, e6 _ 65
; a$ {5 Q: k$ ^: _4 N4 b3 a 66! N H& Z9 t7 H
67
# [' S" p- W* D* w 68/ B; |5 R5 m1 y* l( W6 k
69# u# Z! S, ]; y) j5 g
705 r+ F' k; Y2 s4 @8 ^3 m
717 }' u: p5 z" m
72! p- t! a7 x' K V K0 j c
73
' e3 M; g% h* f: k( j$ X 74
$ C' g& G! S9 j, o 752 H7 r' `# y3 d% D0 c
( f: l# j/ |' U
% z1 V2 [6 v9 K. S3 Z : M/ T: ]# w$ M! F
可以看到,使用 turtle 库加上强大的数学几何知识,可以创作出非常好的看图像。更多内容可以参考 这个问题' W" \# @, U8 [/ A9 k) b: b, ?
. r0 h9 ^' K9 ^, {. K( Y+ t
使用 AI 作画
8 D0 i' j& q; S( W& \ ERNIE-ViLG文生图1 \1 Q% ?1 v% }2 q
使用以上方案绘制的内容,一般都比较刻板,缺少一些人文气息。少了一些人类才能有的特点。但是随着 AI 算力的提升和大数据的逐步发展,已经有很多可以使用 AI 进行作画的平台了。 比如 百度飞浆文心大模型 ERNIE-ViLG文生图 平台。
' J( l) `5 T! F9 B5 ~" T( b
5 ?/ L+ q1 V) I% G4 E' ?& R. T import wenxin_api
# N! |- a `/ r! O6 k7 L: Y from wenxin_api.tasks.text_to_image import TextToImage \: {4 v! A( @
import secret
) K! B' @& R" [6 H* K; C2 x* H0 O
. _: J# \6 P9 o, x; W / n9 Z" }) Q8 ~& K
def draw(t, s):
; [* g4 f( S% h* U) o1 }: t- ~ wenxin_api.ak = secret.ak0 n/ Y! v3 G( {
wenxin_api.sk = secret.sk' C0 |" t. x- D5 }
input_dict = {
5 D! G. g. @5 P8 ~7 |/ ?5 Z "text": t,
+ }; F3 p* t {0 J0 K3 x7 u "style": s% }6 a. O$ W4 O& q* a' R# P
}
8 N4 M! l1 h( X7 c7 d! g rst = TextToImage.create(**input_dict); b! m1 @/ o a7 i3 h1 M1 L: R' @
print(rst); z1 H' ] x, T: |: b
( J' F; `' \7 T' C2 J5 D
! s! p" r5 c+ v# D& e6 C2 H if __name__ == '__main__':
1 F- n ~% H" y h' _# ~* ] text = "夏天"3 {) x; ~) R; t P
style = "油画"; {" k/ w1 K5 ^
draw(text, style)
9 X' V4 Q; F! t
+ J' q) j1 ~, b1 P/ V 16 T5 y# P; D, V' Q5 M
2$ j8 y' l F" j/ r- `1 N
3" @& K- w5 i7 _
4
* _. h* B' Z7 K ` 5
1 b& U* Y# ~6 r% {& z/ s% j" g 6/ h' J* J7 R, c
7- e3 _' Z: ]7 Z! ]# M
8
5 x7 s: k4 O p2 L q 9' [. @: H- Z3 ~/ T5 I X
10
a" b5 c7 ~" {( R 11& a* S0 [4 v+ b9 _9 ~! N. c
12* k' B% [- B5 [1 Y
13
2 T8 c( a( o# \$ k+ f: r 14" G; Q7 L! _2 R1 k9 p0 w3 m
157 @9 Z2 ?/ @) _, X+ T6 z6 J
168 h+ z; ~. \% c3 N8 _/ v# j
17% [( J2 n5 x" y1 Y' Z4 G8 U
18! N7 k4 E8 K/ e- o# \1 l
19
) s4 ~1 @7 p3 Y: d5 z- j 20
2 ?& X( v* X- U; |2 ^2 P 使用上面的代码,就可以创作出 油画 风格的夏天,可以看看 AI 生成结果。8 @$ C( x4 l6 A k3 v" W
; F& A" }3 `, y/ V 2022-08-28 12:20:06,785 - model is painting now!, / h1 ^# W6 l' R, [8 X- D6 f7 X: ~- t; q
- taskId: 1062408, waiting: 30s
* A2 I! c! k, q' c {'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']}6 x! s/ r( }4 G% E
1
; C3 U3 e$ ~8 e- Z# a 2
8 f" @+ R4 R* {4 R4 E 3
, A5 |1 x" `& E3 T 可以看到速度还是很快的出不多一分钟就搞定了。可以预览一下结果' h! @8 H) H2 x1 c! J! x
( `4 n% K6 b& B
9 @# H# x- O' W7 k. m" t( o % b1 Z e: Z' u) d) `: s; P6 w
0 G. H! M5 \2 m& }) F. T 2 t' V6 ^" p" r
" O7 c# e: g/ i$ _0 M- j. t
- |) |5 w1 n3 `& `' S ; T) n- i9 [) W3 R
可以看到还是很厉害了,水平应可以赶上专科院校的毕业生了,但是作画速度那可是降维打击啊。
9 M+ H9 m }9 Q% b2 A4 S# ]9 U& Q
0 b1 L2 O$ e' S4 R( j 使用 ERNIe-ViLG 搭配自定义的关键字可以生成 水彩、油画、粉笔画、卡通、蜡笔画、儿童画等多种风格的图片。1 i1 k7 r; J- S: n
* L d0 v' O, w
可以再试一下水彩画风格的天龙八部 。( `+ o( n {( o: w
! Z; n7 V8 }7 x# i& q: Q: j
# r8 |: [8 n" z! L) s1 h
5 z$ {" h* M5 n- y A , j# P. N o* K/ l: p4 G" i
) K/ J, |; P2 V( w+ P8 t) W ( z# I# ]/ v" H" Q0 k% f
: w0 W6 V7 ?: C6 S' }9 u
# s/ G9 g$ _1 a 是不是还挺有感觉的。
* D, ~- b% v$ I3 e0 P& I1 [! M 5 B# w" R+ G# t8 h- A
DALL·E 2
0 I, Z- x7 D6 [$ |3 A) h6 q* A 当然,说到 AI 绘画,国外大公司也有很厉害的。比如 OpenAI 公司 的 DALL·E 2 。
' h0 a2 b2 Q# L- W. ?7 u8 x; M
- o5 ~$ |: h% ~: {) \( i 比如以写实风格创作一个宇航员骑着一匹马的图像
$ s3 Q( N2 }8 b1 a/ C
& m! F) {+ e* \6 i
: S( V. u/ Z7 u9 U
9 i) C) y& @: I& G6 z 在换个铅笔画风格的
6 w. ?3 x" p8 o2 U/ Z2 @
2 ^0 e* |1 |1 @9 c* t# X$ d
6 o, s* u w* |8 _: v
e/ L0 I0 G. ?8 S S( i, w' h 使用 DALL·E 2 可以根据创作风格,更多关键字由 AI 创作出非常有想象力的作品。可以到 DALL·E 2 的主页查看更多更详细的内容。/ I& N5 t& b+ C) ~
7 ^6 h/ m5 v5 u9 Z8 w: E 总结
2 q" t/ L( N% j/ ~7 s$ a# {' z* F 其实用代码直接绘制图形,还有很多其他方案。比如大名鼎鼎的 MATLAB ,可以创作出非常精良的数学几何图形。& A) D3 [$ V4 u- Y% ^2 f3 T
2 d. h9 L+ u; z7 W3 ? 但是比较一下上面的这几种方案,可以说 AI 作画的水平,一下子提升了好几个层次。创作需要的输入越来越明确,越来越简答,越发的人性化。但是输出的内容,却越发的开始接近甚至超越了人类的水平。
& x3 w& v% k7 @ o+ ~( u
/ D. ^" ?# g [0 R& @ 参考文档
) W/ E0 ?+ {# b, [7 U, A* M 字符作画,我用字符画个冰墩墩" C U. U E7 i, ?: N, B
大家用Python-turtle库作图画出过哪些漂亮的树哇 ?) h. G1 i: n4 E0 r e6 Y
————————————————
: O/ x# T& t$ l$ ?' o% v n 版权声明:本文为CSDN博主「阎楠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
' [6 b% T+ V9 u7 Y0 p3 G 原文链接:https://blog.csdn.net/TOYOTA11/article/details/126575202
2 V4 C6 O6 m* x/ K C' E& o x) D- [* }6 c7 H+ z
/ y" E) |9 R$ h% ^% h R( L
zan