- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 559590 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 173250
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 18
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
如何用代码画出一幅好看的画* O" C2 \& T# R
" Y; G2 u! c# i% X9 }' A" z) Z
前言
1 i% j- x" Y/ f) [) B! K随着计算机技术的逐步发展,借助计算机强大的能力进行绘画操作,已经变得非常容易。绘画作品的水平也是越来越高,下面就来看看用编程语言绘画,能搞出什么有意思的东西,相比人类的创作又有哪些值得我们思考的地方。
" C2 `1 |! W/ a2 ?7 p" o! o8 t0 I6 n: w$ [# b
绘画! P% T' I$ I- D( Z/ Y& c
用代码输出类似绘画的内容,最最原始的恐怕就是直接使用 print 函数了。
+ z! C" P6 N3 @* P! z0 Y1 X& h. z$ U: f; m- a+ t# ^, I7 i+ R- F6 l
print 输出字符1 A4 H2 m+ R s& e) i$ `
def do_print():
- P" ~7 H6 P( P* L& S1 ] print('''% p0 U, Z4 G1 [
1 h; L0 n. G1 y! |2 ~9 u5 M3 u
へ /|
5 [# s1 [# K" O9 ] /\7 ∠_/
9 V) o* |6 W- }: X / │ / /9 u! C6 M- c( [4 ?$ R
│ Z _,< / /`ヽ- A/ `4 e7 J y: ]! t* ~
│ ヽ / 〉) I8 Q4 f$ K' w8 A% Q3 P4 \
Y ` / /
# Z5 J. q/ ?. C7 ^/ S% t* Y( R イ● 、 ● ⊂⊃〈 /
0 q* N7 s* G% g+ O4 o9 Q7 g0 N( z () へ | \〈' `( V- z1 V4 g: c, H1 G, u9 C3 u
>ー 、_ ィ │ //
* E9 ~2 A( `1 M' N. e- G / へ / ノ<| \\5 G" [+ O: g: X4 R: b7 ]0 e
ヽ_ノ (_/ │// c" `& X* Y2 y: ?0 s1 ?
7 |/. F+ v! O- T) F: a- j! \
>―r ̄ ̄`ー―_( k' M& U+ r1 }3 Y
''')7 X/ b$ E8 v* |- ~
18 m T8 U0 R: o" a& t
21 k5 a4 W6 ] V0 R4 c/ V
3* _" j5 F' h1 ]/ z" B1 j
4
2 `! ^) d7 p1 |0 P& x$ I; R7 S! E58 y% l% G, G" U! R8 j
6
; W* Z6 R- P1 p' j* O0 c7
9 ^8 ^" Y; X" h F8
, D4 W+ J: \# N9
- W# e* W0 A) d- ~: ]6 w10
9 q d+ g, }" j& Y111 h0 A( w, E7 t9 B, N
121 ]$ N) {$ A& S2 h$ [
13" y" r* ^/ h! H& A. ^! ]
14
( i7 G( r3 y$ X( |1 h0 t5 N% J" L15
) b! L6 z E5 H& m, V16- p* D2 S9 X: |
17. {+ k3 E/ \8 C2 S
这个方法执行后,就可以在控制台看到下面这幅可爱的皮卡丘画了。9 @0 C! F+ P. ]; G* H
# h* c7 a2 A5 e( D5 g5 q* F, X0 ]: {2 @# a- W# T4 l
8 |6 M8 s- v( _
这种做法,可以说是完全没有什么技术水平了。想要画什么内容,还得预先编排字符,太麻烦了。于是便有了升级版。
0 a. V! n" G( g8 y! c
) w8 n- E [9 ~7 C4 \' Z1 C, u; p图片转字符1 r, E$ ], c5 d/ F+ g8 {
这种用图片转字符,看似没有什么意义,但其实有时候可以创作出意想不到的作品。比如前一阵子的顶流冰墩墩。
4 u2 E% ^ } ~. I& j
0 l' K; j# ^& J# H/ `+ r# I' L' o. T1 S, `1 I
6 s8 l% n, A& _
这种做法的思路总的来说,就是把图片的抽样图片的像素信息,然后将像素信息中关键的亮度信息用特殊的字符串进行打印,效果就是我们最终看到的样子。
' c* r& z: s k+ @" @1 m& B9 M3 X* W, ^$ G
public static void printImage(BufferedImage image) throws IOException {# b, d/ w0 \6 K( h$ O2 b! _4 ~
final char[] PIXEL_CHAR_ARRAY = {'W', '@', '#', '8', '&', '*', 'o', ':', '.', ' '};$ ^5 M6 o1 q: f& Z7 e( w0 m5 E
int width = image.getWidth();* W* N- p9 R$ w) L5 r* G
int height = image.getHeight(); q, {6 X7 e) f7 o9 A, ?0 l
for (int i = 0; i < height; i++) {/ p( f. i& \$ P" ~* i" p
for (int j = 0; j < width; j++) {
6 P; c: E5 G7 {- \( a! H int rgb = image.getRGB(j, i);
5 v. h) j% u* C Color color = new Color(rgb); r' j/ T% r8 a( Z& D
int red = color.getRed();* T [# L$ P( I, C [
int green = color.getGreen();
2 ^9 P* e3 t- ^% M7 q9 A) z int blue = color.getBlue();; S# \1 n2 T& p7 a8 F+ i7 i, [# ]
// 一个用于计算RGB像素点灰度的公式
+ k/ p) y: p0 g# o9 R2 ]# |) X0 s5 A Double grayscale = 0.2126 * red + 0.7152 * green + 0.0722 * blue;& n1 A; W* {' t9 p* r5 S* F
double index = grayscale / (Math.ceil(255 / PIXEL_CHAR_ARRAY.length) + 0.5);
/ ~7 p: m, E- [5 V System.out.print(PIXEL_CHAR_ARRAY[(int)(Math.floor(index))]);6 Q {" N5 Z% N) X. o
}
1 o) C5 K' `- d& u System.out.println();
6 W1 Y1 ~: s, M7 u" A3 }, F }
; p8 b& m; ~! Z& E& w. a& U}. }+ v1 d- C; \. O
" Z' I: H0 }8 Q* W# W, S7 c
17 a [9 Y0 t: |& K. y2 x. ?! J7 v
2
/ G( M7 {4 F) E! q3$ Z$ F0 W( n' h. }1 e+ D
45 K V: j# @- \" T6 a/ |+ g
5
& e% @1 K2 D4 K( e W, y6 [+ g& q6
8 N ~( |1 B0 j7
" q: A- T+ s$ |. k, Y: O$ A8
% o) q/ @- ^( k( p, O5 l, `9
- L( m; n3 M' M3 N: c103 P d' s8 z t
11
) T1 `/ J% G4 m- V12
# C& @. J2 \* Z) a& [13# A' m# k0 v; J
14: C$ v. Y4 q7 _% |; D
15
0 Y8 ~7 I$ U/ H16$ C9 o! h4 X( U3 h
17
; n) l5 A; v5 g- b18" F. T5 z8 O% T7 Q2 ~. E
19
5 u% f. _9 v3 H+ }更多具体实现可以参考 字符作画,我用字符画个冰墩墩 。
0 @; h- j1 _; ]" A4 _ U! n
% @% y# y8 K5 X3 F4 h使用 Python-turtle 库作图+ H* C- Q+ d6 `" F; u4 g
下面这几幅知乎用户的回答,可以说是非常有水平了。
; @9 A# r3 [" l- k+ |7 m v
' _! B8 U9 W3 e0 H% _& }# k, _" Y" Z ] g
6 A: Z r5 \) c; P% `import random
* j8 l, d/ h6 v' R- }5 G8 O' Fimport turtle
% N/ X$ g" |" S: e: k' U! y! X" \from turtle import *
& h8 X( S; S- S! J! N* r `2 S# N3 W7 D8 y6 }
t = turtle.Turtle()
1 x* w6 r/ X+ N( \2 ?- I2 [, \w = turtle.Screen()
+ f* K' v4 q) n/ V$ y, Y. V8 [" o- c$ x
. U* _! N- m: \/ H7 D8 {
def tree(branchLen, t):3 ~+ q3 E0 v1 J& E
if branchLen > 3:, }4 U7 N& O+ f: q& [
if 8 <= branchLen <= 12:3 `4 _/ [# a. I% D W
if random.randint(0, 2) == 0:$ m" I1 N4 e2 \; ^/ F
t.color('snow')# s/ _/ ]* G8 f, f( ]8 j/ r
else:' ~% L5 `( k0 |2 L& J8 y
t.color('lightcoral')' t8 b9 z" `- B Q5 ? @
t.pensize(branchLen / 3)
7 e% F( q7 j6 p: p elif branchLen < 8:6 K# v; S- D5 t7 t( ~) F2 k: D
if random.randint(0, 1) == 0:5 z% a: v! m" G! X
t.color('snow')
0 ^) C; { [* Y# _$ d' l& ^" G else:. ~6 J! v3 R6 L) Y* W
t.color('lightcoral')4 e! Q5 u5 u1 i/ Q, R& u
t.pensize(branchLen / 2)
) {5 t/ U8 D4 A7 f9 v+ z1 A else:
/ O5 o0 Z8 m/ `) q g, ~ t.color('sienna')
) x' N8 {: m$ U8 ?7 v1 s t.pensize(branchLen / 10): S" |# D. F/ o. @3 g$ M" D2 V
* U7 U: a, @8 H) H* q) ~) A) Y5 F6 s. k t.forward(branchLen)
2 `+ ]0 X5 G) A+ Y' Z* ?8 w+ m2 ~ a = 1.5 * random.random()
! s( I# e# S( B5 i& T3 K t.right(20 * a)
" |3 I+ ]3 _3 ]9 v) `! o b = 1.5 * random.random()
$ H+ @( u1 S" K. L& U tree(branchLen - 10 * b, t)7 i0 M/ v5 Q1 }2 S/ Q% j7 Y- M
t.left(40 * a)
6 i: y- L) K1 C6 K9 c tree(branchLen - 10 * b, t)' s$ }! @# Z7 R" a1 p
t.right(20 * a)
{: I# R3 C/ s t.up()
2 F" T9 C7 z, q1 ]9 ?" Q; q5 X, Z! C" W t.backward(branchLen)
2 j4 M7 L/ H2 g+ L+ F% l; q G t.down()
( n# A, p+ F, G. t5 b3 i: `( G
3 M# L0 _0 N' h& F1 A5 U
% g" g( X0 y9 ~5 J( y% bdef petal(m, t): # 树下花瓣
" F1 L _) {& z- t% [2 ]. |1 Z for i in range(m):
/ H' {, l& x+ m- ^ a = 200 - 400 * random.random()
+ o# E: s/ Q& {7 p b = 10 - 20 * random.random()
' b) Y" T' `! ~8 e t.up()
* f+ L) r4 O1 q3 l6 H" W9 ~ t.forward(b)
2 E/ |4 G. W/ n t.left(90)$ d' N# k0 I/ s U. f% y
t.forward(a)1 Q% P* f; T' l* i/ n
t.down()
1 m+ w- O2 Q% G7 b. N6 p# u! H t.color("lightcoral")
8 j- Y( a8 P4 r9 O& Z/ p t.circle(1), p2 `" @* q5 L0 l2 |; K; B8 G- N
t.up()
% V) l' S2 i$ x# C( D4 |, X t.backward(a)$ D- F' w4 N4 \5 x* C3 U% M
t.right(90)/ c) `' E/ K! h! c) u
t.backward(b)$ w3 n3 H' J9 n o7 h2 u: p
+ h4 e3 r& k9 Y, D2 Z
6 m p: v7 m4 u( X3 ndef main():
6 p! M* X% G5 n8 Q$ |% X t = turtle.Turtle()0 @5 P& J+ O, h4 i
myWin = turtle.Screen()
C, |! _( L* [) ]5 B% K getscreen().tracer(5, 0)
: o8 b3 @- `% `/ X* P turtle.screensize(bg='wheat')
8 R- `* E. J& S s t.left(90)+ X0 b3 ]1 A- L0 V) u5 S6 j0 Y' d% L7 B! R
t.up()$ d, f0 J( O: o( |) S" D
t.backward(150)
+ v4 t, F' v" \6 L% n t.down()
" E9 _& ^/ Y6 Q3 s& D t.color('sienna')
! ^- H# Z* i) |4 s) |$ k$ _ tree(60, t)! v7 P3 Q" |+ F$ m
petal(100, t)) T5 ~2 z7 z- z8 U O
" d: C! U" ^) ^$ i1 h myWin.exitonclick()
* K8 t0 h" M) D$ j
' p/ ~3 ]6 F$ Z) V* |+ ]" ^7 \* }
if __name__ == '__main__':2 L S' h' H! M+ M
main()
9 d: Z% P6 d+ ` L0 M J" ]& C& ?7 S6 P7 U; L, [. a" V1 M
- U% l; ~0 x8 }- R5 `, D7 K
1 @. y: E: }* Z: i+ `
2
# ~; Z; G, `+ O3* R7 |8 ]5 r. N5 ]9 \; F
4" D$ n) M- V$ H
5: H) O/ H( T) r) n1 i- H9 ^9 Z
6
& e" Z( Q) ^( C72 R- p9 R- X; n* q7 m% D) q
8
8 b* G# T. o2 ^! g2 B( X! f9
( \3 C) I `+ ~' Q0 p: W5 o' C10! C V- U; n7 }3 m% Y
11
, y9 J# U$ P6 Q12
: |* w5 z* @+ I) z# K4 Y; ]13" Z4 d: ~8 [" D2 B
14
: {( K7 u/ G8 ]) e15
- E! R, S' L. q. S5 Z1 [* F16
( g e7 M/ o4 U5 t1 a! U! ~8 z17
" [# ~, ]: ~# k6 c: T18
0 z! a4 C2 S/ I- P& G- x1 {19
6 y T& X3 N9 L20
6 e/ A: ?" j8 s5 Z21
* t0 V" R. `; ?9 r8 E, \* G1 Z229 b: v C% U0 A
23: N2 F4 s& h2 f. Z$ K$ I
24& Z- X2 L4 e/ @5 B
25
, [* P. Y9 {4 E. f3 A: i26 U. }; y& n: n/ O* c
27* n8 I2 h( u; x' {% d
28
. }4 }5 c( A4 B; T! F8 h" p299 X! C. S, L: D3 ^: B8 t% R
30
0 l* i1 S1 f! Z31+ q: h( L* A& G' N
32, p9 V* `2 K; p. E) ^/ k) N9 t
33( k+ P+ h: w4 o% i. p# i3 F
34
, ?4 H# }0 H5 a# X6 I35- F+ _3 F$ V" P. K! J; g
36
1 Z# A6 P M5 d/ ]* d4 N37- y# n9 |- M% j* B
38% b; o$ Q# Y$ K, ]. x) y" w
39
! C8 J- L/ L" n; V# i' e1 E40
* ?3 f6 I1 o% j# a n4 Z8 V0 ?41/ t5 B4 d8 L9 R# {+ [
42
, {+ Z( U4 @4 f( H, X H43
8 p: e) I3 q8 _+ @: p44' U, z" a) n. n% e; \
452 z% k2 G3 O9 k6 i! m) L" s0 m
46+ x# U& K" I' A N: m/ o& U! b
47$ I$ Z# d8 X3 o2 N
48
, P" j! Y3 X3 D& G0 I' [8 m49
+ |# ]/ E7 _! G6 z1 W7 p50
; H" Y# e) b T* l51
9 [3 U8 ~& i0 E1 m2 k2 e3 q4 o52' L# B: \. H, W' ^8 J
539 V6 Q2 |( m9 [
547 C" `! K% N7 G% g+ A9 m
55: ]/ r2 P& m" p. C* x& d& a3 h
56$ v( X& [. @" k% A" B* n: P
57
/ G3 s1 E: A, P+ m. I! |/ j58( d/ c: A7 w1 C6 G8 a* q9 ?4 m9 j# i
59. [) y. {$ F# H& L
60
* q3 w7 n( ^. G' B61
. w" [7 a# ^# A62& ~& h$ U& C# _7 p$ d
63
8 b! X6 V/ S+ @64
# h5 U# J( `' o- M4 w, W- S* b- a652 I7 P* n$ I: j
66
, l9 k. d2 W2 u* q1 O" z8 n3 ^" k673 t% z& D9 ~0 f2 l# q! [" ^ S" O
68
/ f( v: w: K+ G! T690 }/ P4 |9 s6 _2 I9 H- a
705 D) j% a/ F* c1 h/ `* q* x# }
71
" F9 @* _2 u, t1 U% A" b72
( ?0 Y9 W6 N! c! ~4 h4 }73
3 m# n- K7 S* b; i3 H747 B$ D- x/ {! G" g( V$ X. q+ C
75
2 `( r2 i* u6 u1 f) x: J# A. [5 G* p& z- i" i! q0 S
. |: v0 y: c* N$ Q5 B/ y( v( w3 ^9 \3 o
可以看到,使用 turtle 库加上强大的数学几何知识,可以创作出非常好的看图像。更多内容可以参考 这个问题
7 J- L! p, ~& K+ D1 P6 O' w+ j, I, b/ l0 a8 j' m, o2 u/ p
使用 AI 作画) i# _% S$ u% F! ^9 L& q R
ERNIE-ViLG文生图
, T9 |5 k0 f: G# j) i v/ m' |使用以上方案绘制的内容,一般都比较刻板,缺少一些人文气息。少了一些人类才能有的特点。但是随着 AI 算力的提升和大数据的逐步发展,已经有很多可以使用 AI 进行作画的平台了。 比如 百度飞浆文心大模型 ERNIE-ViLG文生图 平台。0 x8 d) P3 h+ l6 [* V# ~6 g* g
9 t: H3 e5 H2 o ^$ M6 u, Wimport wenxin_api, U' I( y, `3 [; T' _. M
from wenxin_api.tasks.text_to_image import TextToImage
4 k' Z, s" d& ]6 Pimport secret5 X' g8 v6 ]4 E4 y. o2 D
# u+ Y4 N3 `3 _0 s1 R) k+ u
8 j% L9 [* W; P7 W \+ c
def draw(t, s):& x) s% u, j" |: d8 L
wenxin_api.ak = secret.ak
6 l+ t8 @2 w0 V! Y: m wenxin_api.sk = secret.sk, Q7 \& c7 N1 l+ L
input_dict = {
: ]2 O B8 ]2 P- g, ^8 c "text": t,
) A3 E) [* T; d "style": s7 z( f5 k" f+ x3 U
}2 j) C( ]1 z2 V7 j- w$ [
rst = TextToImage.create(**input_dict)
2 @% w( s/ s& E. V1 w* a print(rst): O1 Y' k: ]( j( o' B5 I
- j: B* z; j ` L# _
2 f% m! Z- v# H$ h2 f+ fif __name__ == '__main__':& k9 b$ x0 n: F* W
text = "夏天") R) A+ L9 o" |, I+ A( r' @) _
style = "油画"
. p, _4 ^( R X- C b9 ] draw(text, style)
$ E* w5 r' h) K3 g/ m& C* x7 L4 D. G8 _5 \3 I' }% L
1( X" V G8 _; c9 ^; l
2, F% t" W8 e5 {/ W& ^% r+ W- v* \
3: u: i. ?# J9 U8 [9 p Y8 m# B
4; ?! X8 Y! o0 |% d i! w
5
+ a& q) v3 I) w% ]6$ C' E, J% K( Y) O) |
7
+ V' t% S% l" O) ~/ R" ^88 b2 E+ P2 ?- K6 @& e1 U1 Q
9
3 P% \0 |; v, h# f7 P9 C10
# [0 a0 [+ u8 G11, P# N/ k4 B$ K7 p" I/ R6 c6 u
12/ E$ V; i9 D2 u9 y
13* e! C! E* p, v- \
14
- @: Z7 L% |+ T- B+ _15
9 n. `$ _; N; y4 P# j4 Y7 j16) x1 l' F& w* c' w5 ?5 A. Y
17" O! {: R0 |& e: |# h
18
- \+ N' a u6 M6 E7 a197 n# a. F- m" F) z" s" W
20 D" @3 D+ e k- r2 a( b) r2 X; G
使用上面的代码,就可以创作出 油画 风格的夏天,可以看看 AI 生成结果。
& x- l" W* J+ b/ U4 j' \" E
9 ~$ q4 T7 M, t% M. j3 a2022-08-28 12:20:06,785 - model is painting now!, % y8 N/ m \6 M
- taskId: 1062408, waiting: 30s1 _& p' _5 _" U9 T! O" S
{'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']}$ a' [/ n9 w6 ]9 Y+ ]
1
# r/ T5 F3 D9 B$ U3 i8 f1 }1 B9 W2
+ ^- ~( `' I1 A* k3! j: v0 K, m: [* C
可以看到速度还是很快的出不多一分钟就搞定了。可以预览一下结果- R7 N. ?* m# ]/ J
3 B) D( z: `6 `: a- f r
$ g: v) ~! d& X, O
* A. p& O" U9 s; ^4 T2 r) k+ T% N* r8 A* q) e. k. b, E3 U
- F) ^1 }& c i! K. P1 W" R) d$ l4 `
/ @' \7 A W! h2 e" V
7 x' q" C1 g& J) O) Y, L/ W可以看到还是很厉害了,水平应可以赶上专科院校的毕业生了,但是作画速度那可是降维打击啊。
# I* x9 Q5 X$ C/ q1 E2 v3 u" C( O: @
6 R2 R& T. m0 H }使用 ERNIe-ViLG 搭配自定义的关键字可以生成 水彩、油画、粉笔画、卡通、蜡笔画、儿童画等多种风格的图片。
# s7 z: s, L; d, s. n- A: z( q) s' w- P0 m4 E7 @
可以再试一下水彩画风格的天龙八部 。6 f# S) S, e- T" @ u* y6 o5 n
* O9 J/ `& H# U8 [
* E7 ~9 L, ]0 s5 i7 u" x/ F; v) F0 ]. P( _9 W0 O
8 l: P2 a1 n6 x$ P4 A& Z) B' k
2 |' `: \6 ]- b9 v$ L, n
8 K; ]0 P( B- e) x, _
% ~( C) ]3 ^/ u& B4 y' D
) P, [. ?/ z: i- A* u" ` Q& n" q是不是还挺有感觉的。+ z7 n T; w) t) G
6 g1 Y& U+ N7 ?' D H
DALL·E 2) H2 r5 v5 @5 @/ n( r* t4 K4 t
当然,说到 AI 绘画,国外大公司也有很厉害的。比如 OpenAI 公司 的 DALL·E 2 。
' A; b& O9 v2 H0 K+ `% |( t3 x: C; L& s0 `5 Q
比如以写实风格创作一个宇航员骑着一匹马的图像
/ T5 j: ]8 S' |; x {, F/ o/ V/ u- K& \4 i, O$ f
5 [+ H" g. S. f8 K5 Q/ J$ B
5 H8 C+ A/ D" E在换个铅笔画风格的* M9 K; P+ Q1 r) Y4 N
) K s1 w" T: ?$ s3 S) w( \
9 F2 Y; \2 l' V+ l% f
, _$ q+ t* R. v7 R% k7 n使用 DALL·E 2 可以根据创作风格,更多关键字由 AI 创作出非常有想象力的作品。可以到 DALL·E 2 的主页查看更多更详细的内容。
) q6 Q1 i$ U- A0 e* F; d1 l! e5 J& I, V+ Y7 u
总结
0 N0 d6 E3 z5 n! G: \5 Q4 Z1 A其实用代码直接绘制图形,还有很多其他方案。比如大名鼎鼎的 MATLAB ,可以创作出非常精良的数学几何图形。
2 d3 s, y/ ~$ h7 A+ O9 d2 R3 N1 s: D+ p) z) }
但是比较一下上面的这几种方案,可以说 AI 作画的水平,一下子提升了好几个层次。创作需要的输入越来越明确,越来越简答,越发的人性化。但是输出的内容,却越发的开始接近甚至超越了人类的水平。0 K( L0 [- {1 e
. ]- @! U& Z$ c8 A! S+ n2 ?参考文档8 E) q% q% M. G* x6 ?$ K5 Z
字符作画,我用字符画个冰墩墩
! s% m/ y* g! j ]0 f: d ~大家用Python-turtle库作图画出过哪些漂亮的树哇 ?4 q" S* M, U: Z
————————————————
% x! Q6 h: h; _版权声明:本文为CSDN博主「阎楠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
+ x; [1 _2 }- b U% F原文链接:https://blog.csdn.net/TOYOTA11/article/details/1265752020 X. t: h3 @% y7 A6 J: F
& K% ~1 f+ e" R- f3 Q5 l% T2 m
* z. C9 F; M9 Z7 X4 C- \# x
|
zan
|