- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565629 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174912
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
如何用代码画出一幅好看的画
, W9 \; E y7 o$ W, j+ }- Q$ _# O2 C0 z, T. F
前言
; g; Q" @: X7 r随着计算机技术的逐步发展,借助计算机强大的能力进行绘画操作,已经变得非常容易。绘画作品的水平也是越来越高,下面就来看看用编程语言绘画,能搞出什么有意思的东西,相比人类的创作又有哪些值得我们思考的地方。' t, B- g& R! h6 Y( k6 h4 X9 g8 a, x
# P+ k' _/ O/ h3 Q7 m3 C$ Q绘画
5 b7 r$ ?4 O6 V; ]; A( p- X3 b用代码输出类似绘画的内容,最最原始的恐怕就是直接使用 print 函数了。6 G, C( v. y3 C8 V, E" [8 p
4 j8 l/ Z7 V5 K: w* Q
print 输出字符
0 [1 t! j. y# X0 `% V* `# Pdef do_print():5 w; W' K( F( t) W9 q3 }
print('''
6 i4 e' i3 r9 i/ m9 s' B7 M2 v6 K6 A7 S4 |8 S2 R; q% {
へ /|
: f- u# y4 P2 _. H" l4 f O /\7 ∠_/
8 E0 E, x' j; N/ v / │ / /) \4 g A. j9 u( l2 C
│ Z _,< / /`ヽ
* o; ?& k: o/ x0 k) b5 o% J │ ヽ / 〉
, }; l" J5 j, D" U- [, }* H# F Y ` / /6 v( K. h$ n$ j [
イ● 、 ● ⊂⊃〈 / g1 Y* n# ]& T
() へ | \〈: `& g% M3 g+ S e, I5 ~! v1 k6 i
>ー 、_ ィ │ //
) l3 n8 q1 h7 E L$ U# Y / へ / ノ<| \\
5 k; G6 J9 f+ D8 j8 u ヽ_ノ (_/ │//5 L( g" x% x `; T
7 |/+ i7 J j$ N5 x4 Q
>―r ̄ ̄`ー―_
3 K' z' Q1 a3 C/ N$ s" T ''')/ X3 t. R) S- \+ v" k: Z
18 W# w5 p5 u, F4 d5 S( c" Q- ~
2- A9 `% W }" r( V9 M2 m
3& |* y1 Z8 \, }1 }8 W2 f9 E
4
5 K% Z( b- X+ f, G* t5
" p0 @, E. \1 A s2 @) b' c64 a5 S# {( H# a1 e% ]$ p- `- w# Y
7
7 c' m* j" y( w8 i+ @3 [8
; P" G: Q# v- E3 W& {! F$ C" |+ ]( \9* g( ?/ k; j2 t7 b8 U+ I6 p
10
1 Y2 M" O! W/ W; `6 E11
& L8 f: |4 O$ `/ g7 m+ p127 @* v3 l9 J; l4 c
13" h; _0 i0 r" a3 C9 p* [1 T
14- ]; o+ \. c7 M. K: ?, a
15
' Q2 a% {! G; [16
7 c6 g# R7 B s9 L17. u+ S& y# E+ _2 o6 u
这个方法执行后,就可以在控制台看到下面这幅可爱的皮卡丘画了。
. y" c. ~( n: f
4 _* r% v& G, W7 Z2 U: [
4 g5 {% r/ r- L1 d0 o c
* ]0 x- h' U ?$ R( @6 k# \ S8 V这种做法,可以说是完全没有什么技术水平了。想要画什么内容,还得预先编排字符,太麻烦了。于是便有了升级版。
4 q7 o7 `1 d& Q! w5 k. z' [5 G& t5 i' G
图片转字符; U5 H- l0 }6 f/ f% f N8 Q( R
这种用图片转字符,看似没有什么意义,但其实有时候可以创作出意想不到的作品。比如前一阵子的顶流冰墩墩。* V# K# I; a( }
, B# A$ ^/ w! `1 {3 Q' H4 L" R Y v% r; Z
+ z! G% I' l4 I4 }8 t这种做法的思路总的来说,就是把图片的抽样图片的像素信息,然后将像素信息中关键的亮度信息用特殊的字符串进行打印,效果就是我们最终看到的样子。# y, R4 s W) l1 }" d4 F
/ J" \9 @, \3 s5 v
public static void printImage(BufferedImage image) throws IOException {
" P. r/ e! w7 Q6 l' I1 \+ N) C7 _ final char[] PIXEL_CHAR_ARRAY = {'W', '@', '#', '8', '&', '*', 'o', ':', '.', ' '};
' r& t3 [' ]2 M) k& F int width = image.getWidth();
V( J1 {8 o) _ int height = image.getHeight();, I, r. ?9 N, `# |
for (int i = 0; i < height; i++) {7 `3 o7 j/ \& _, o6 y3 J( q
for (int j = 0; j < width; j++) {1 ^# D1 Q9 i$ C5 p/ |
int rgb = image.getRGB(j, i);
1 K2 M5 [5 ~5 i# u; z0 i- \ Color color = new Color(rgb);. p% \* A& r+ z
int red = color.getRed();
: H6 V% o2 n9 a: n I2 p int green = color.getGreen();+ D# s* `7 R: G( U4 q4 x7 ~7 j
int blue = color.getBlue();* b# A; ?/ j t
// 一个用于计算RGB像素点灰度的公式/ o! z1 _- ^2 G4 }
Double grayscale = 0.2126 * red + 0.7152 * green + 0.0722 * blue;; u) o% C5 y5 ]: j$ O
double index = grayscale / (Math.ceil(255 / PIXEL_CHAR_ARRAY.length) + 0.5);
, x" t1 @( G. b System.out.print(PIXEL_CHAR_ARRAY[(int)(Math.floor(index))]);7 e# b1 h8 @- C$ m! }4 D
}
8 e6 o& H) q' d! N System.out.println();
m( s* c) A) Y# I8 G; e/ O2 x }
9 c! ~9 x; r" c& B; B. t}$ s* S$ K6 Y! z( J& d( I
- Y7 I8 L" Y5 E8 c" @" c5 L9 C1- L/ r# M! I+ \
20 ]! J7 o: t) P5 _6 K
3- N* [( N. g) P& z5 G
44 u* j ], ~. R2 `) n/ i
5
* @% ?& q( U; |/ N8 ] h" @6" n& F1 H" k/ N" x
78 B$ Z& O, k g- q. }) |1 S4 q
8
: x% W- l% w) G9 _+ Y3 F- g9
G3 L6 W" v: h n/ N10
" O, ^& C$ l7 {( z( b* C11. I3 d3 Z. t' u) ^$ e( v
12
4 K, L5 N5 m8 C2 n6 \: d4 a13
; C5 A5 C% i4 A& h! W14
* ?2 I/ Y$ }2 p% r15
) M. z* r$ m: K- k0 c- ?% t' m16% Y7 \3 E `$ P7 P, ]% c
171 D8 d0 }( }& M4 z+ G+ x5 T' E- z
182 W. N2 i+ I$ O, Y$ P! S
19
8 R. P' \/ O% K更多具体实现可以参考 字符作画,我用字符画个冰墩墩 。
# v M- h. }0 k$ W7 P+ b+ y# {; x2 h) e' J; R6 ] z7 ]
使用 Python-turtle 库作图
0 ]: w. m" C" b) J. D+ d下面这几幅知乎用户的回答,可以说是非常有水平了。8 v! J I# L5 w# T" b
; R+ g# N/ |; A
: Y3 b- K- i$ w; z6 F4 e* p: G: G
, w+ z0 U0 W# @2 C9 a+ H
import random ^% V9 m# ^8 o# x
import turtle
" Z: r; D2 V; r7 t( e( _2 \from turtle import *
- Y4 E% H4 Y9 r; g K
0 \+ A% O! m6 T7 F4 St = turtle.Turtle()
; ^. G, P: v9 j; ww = turtle.Screen()
) m# r6 n' G G9 W/ d$ Q/ A5 Z1 ^" p" f: c( e% P
% ?4 l3 G7 [% n y* {( n( E
def tree(branchLen, t):) T3 `( t: J3 v, }# s. t
if branchLen > 3:
& R4 D: W. r( c& k, g if 8 <= branchLen <= 12:
* _2 J. l- }. J @% B( c, J if random.randint(0, 2) == 0:
5 n; P- i. G8 `( h ]* Y t.color('snow')6 w7 f, O8 O$ w* d8 a
else:) _' ^# V! [4 O, L( `) \. g
t.color('lightcoral')" O; e5 U- u7 q
t.pensize(branchLen / 3), S5 n! x$ K5 y5 `( v
elif branchLen < 8:
9 e5 F# o/ M2 T if random.randint(0, 1) == 0:! _7 j3 h. U/ O/ r
t.color('snow')
" r7 G4 a G1 {3 v else:
* P- ?4 y0 v, E9 W, n3 a4 F+ t/ a t.color('lightcoral')
2 j/ M0 W8 \ ]2 e6 b t.pensize(branchLen / 2)
( x5 f, d$ d2 j7 A h else:
0 m+ \+ p% G) ]- E6 V' M9 K0 j t.color('sienna')! p: T6 B# K3 U, o/ X {' r( N
t.pensize(branchLen / 10)9 S6 d8 x3 j+ x8 O) f0 ] \
- e5 Q7 Y& f/ y. v+ Q0 C5 j t.forward(branchLen)
, c9 q8 m3 {2 I) V a = 1.5 * random.random()
9 x" q# m2 D5 ~. {, g& }% j) e t.right(20 * a)6 n5 m; @2 \' }& t3 ^ p
b = 1.5 * random.random()5 D5 z! i- l' ?: _/ D/ v
tree(branchLen - 10 * b, t)5 c. ^) D v( T" [
t.left(40 * a)
# s: v; w+ J) g& n tree(branchLen - 10 * b, t)4 W N7 p- K0 h$ c8 l# d: F
t.right(20 * a)# \7 V' P0 o7 ], d3 j
t.up()" m# O1 [/ M% `. h
t.backward(branchLen)' @# ]3 A2 d) x
t.down()" e0 C% d4 z, b4 y
/ _! e8 P7 `, [5 B: L
. n0 o% ^& J. n: Y* z7 gdef petal(m, t): # 树下花瓣+ V( o0 b0 S+ W, B, }
for i in range(m):
9 `" h" N* W- i+ N8 d1 _7 `7 c a = 200 - 400 * random.random()
% q5 m0 [, \+ A3 X b = 10 - 20 * random.random()! U8 ?2 M6 \5 v' T5 a* h
t.up()- o5 \. a. U. i L2 {
t.forward(b)/ g" P* t( F. E: J+ j5 c2 D
t.left(90)
" t6 \; K9 L/ i; B t.forward(a)2 P( ^6 E, U0 z) d& T; h5 r
t.down()
6 I; j$ v& C& y& {9 ?7 j t.color("lightcoral")
; w6 c. }" E( Y5 J0 w! h9 ]2 Z t.circle(1)
. h6 Q; c0 ~. [# Z- p" m) Z& Z t.up()- A' a# a/ z# S1 g r+ Q
t.backward(a)
5 W. j3 `' B G+ C1 D1 V5 M t.right(90)7 q1 S8 a/ ?; l4 T! A7 `
t.backward(b)# |; Y% X% @; Y/ a1 R7 }: t3 w
' t4 u0 `4 Y+ E( n/ ]
% F. N7 A* F2 Ldef main():
; N' \ b, W$ r5 d8 O0 N, n4 X t = turtle.Turtle()
$ s% m9 F" F! C+ b3 ] myWin = turtle.Screen(): h; q( h% G$ q- E' ~: ]
getscreen().tracer(5, 0)/ s2 ]* U4 g6 }! e
turtle.screensize(bg='wheat')
( |5 e# x& y8 V4 I t.left(90)
: u6 G+ m4 ]; L' i t.up()/ Z( Z9 |8 ~4 F* v* U4 g. l7 g7 s
t.backward(150)
1 |- L$ p* i' ^1 Q) J t.down()7 @3 s4 X- H9 ?4 I! n+ U" R
t.color('sienna')
1 X0 ^5 [; I, x( p: z& U5 d' q tree(60, t)) p- Y, |5 P n; r J
petal(100, t)
7 Q3 `4 F6 \6 |* u* t% @- C6 F* |5 ]. J, y" w: L
myWin.exitonclick()3 s' e: `; e& b1 Z) X/ w! |
( Q4 l6 O9 N) n! h8 ^$ M# S
G4 `) w0 v! c9 T1 q) p. xif __name__ == '__main__':
7 ^5 y1 r# A$ K& y4 L ?# v6 E main()) H) j: I, } @% X5 d, Z
& ]" y! Z& x& ]5 C* d0 {4 R/ L H% X! D: Z
1
/ ?2 f0 x! h0 f9 U* }2; ~, ?( F& F: }% d
36 u! o. \# c$ a6 s8 Z
4
1 g4 [' k) _7 j) c5$ \& r- k Q3 h1 _& ^ U
6
6 e/ c4 A6 \% g& v# f6 U7 o7- G+ d* F9 P. K% K
8
r- ~+ N4 K2 I, a7 o4 {7 `& \5 {9
Q o4 E3 E! v9 R0 c* c+ I( {10
0 V. o% C! L6 {111 ?1 {$ s+ U- |; V
12" b3 k- }: z1 ?" K$ X9 B9 C
13
# G2 N" Z; q0 }( H6 p8 i1 Z14/ F3 k! h, \$ j8 W# W+ f
15
8 I4 _9 Z6 S- `3 Y/ |16
5 s) Q4 D' | I1 q+ c179 k2 @' _- A9 ^2 f
18
3 m( Q( \& m+ Q# t, I8 l+ w194 I- N5 _+ X/ [+ c% \" Y- O
20" p9 c: N4 y1 a5 @% i1 E. a
21
7 n) ^) J& X4 {0 D- ^: G22/ o: u8 t& t$ @3 j% B) \( B' Q; R
23
- k0 q1 d: R5 y% @24
$ f3 h5 G, ^$ F7 B25
' i; i/ O' X; i4 `26
/ X' [1 Y7 t% \ l% R; M' L( Z27
5 j4 c% U& ]- R/ F3 O( f6 `28& e N- J4 D# {6 S
29/ e$ V b1 b9 e3 ~+ ]4 [
301 q6 F+ P0 m& \
31
9 g3 |) P: G; e5 k+ E7 Q6 V325 U9 @/ z: a' O: Y: ? y4 L6 I
33( f* l' i5 {% W: O$ A
34
: t/ C; k% Y# C* @7 Y35: H/ ^! t. x' \
36
3 {% z+ a' _7 X37
4 K2 e( T) n9 ~* q$ h$ V/ K38. x2 \$ |3 E/ J5 j
39+ v& F9 I/ E$ e+ w! @' X+ H4 ~3 S
40
. a- n$ U% n6 ]& l4 C! ~41
5 J& _, a8 k8 x% z4 G* a" U2 P424 C f' c2 E: k* G4 J* \( m
432 w% d. Z6 W* C3 J
44
: m& u S6 `& l! F0 p! U45
' l9 V# ^- f9 H/ o46
+ I1 G$ }8 |/ `4 R/ o47% }) q' U) a. h: p+ s
488 F) u- _+ b% g+ {3 x% E9 c
49
# Q6 ^2 G2 C2 H% E8 w, \! S$ V1 F! G50
' G0 }6 f* u4 G/ t D7 I4 U517 p1 v/ b/ N; E) J5 y) `" k
52
$ V2 n0 t+ { w, {6 K% K2 x53
) E9 f( R5 d# }8 w. V$ H. A54) ?" K, @) m# y9 c: h2 N3 f
55. S, q" h/ V8 Y( S& b# B5 f: U
56( V. C8 Z6 U$ d3 d* o
57' E z6 E1 W& P* \! j# {
587 g# ]6 T/ @) \) I: T
592 F$ t" q' i- X& i1 ?* G( y
60" ~1 V- q" _9 R5 ] ^: d% ?
61% s7 b Y+ H& R8 @% a) Q$ H
62+ W+ x0 d, X6 U" Z: }
63
+ d0 F# O" g- H j, o$ x! A, Z64' Y" A# B; z3 W+ a( n: [1 A" h
65: S0 n% r& P% X* e& F( U
66
$ V7 Y: P. ~! K3 n' G0 F& H4 g671 ]; T' I% p5 N( T, [2 v
68# j4 u3 ?6 t* [0 M, a% U
69( N: q2 i; Y t
70* T8 n8 f, i+ T6 N- W6 c4 ?5 y
71
. }) B9 h* q0 y! L$ d72
; A/ x* ~; h- f( \3 |+ `: f0 Y! C4 D3 z73
5 S! u+ T; ^7 v3 G2 F, j! U74! B z* p5 }. M9 x
755 h1 s# O" I& Z" r. N4 f' O
& Z5 {/ Z% R: g/ Z4 n- G/ v* B0 J* h% {2 D! `9 j4 [" v
4 V4 H% s9 s: ]# ?& Y2 P可以看到,使用 turtle 库加上强大的数学几何知识,可以创作出非常好的看图像。更多内容可以参考 这个问题7 T4 u* b9 W5 A6 X
}( E3 E. `# i
使用 AI 作画
2 l! K% f* j/ y; w, \2 W3 tERNIE-ViLG文生图
3 A& m( i1 h) i4 |2 y+ d9 I l使用以上方案绘制的内容,一般都比较刻板,缺少一些人文气息。少了一些人类才能有的特点。但是随着 AI 算力的提升和大数据的逐步发展,已经有很多可以使用 AI 进行作画的平台了。 比如 百度飞浆文心大模型 ERNIE-ViLG文生图 平台。1 c) C* h* ^- x* @
! A+ A, o4 h f% zimport wenxin_api
3 ~. \/ O- e ]! z) b1 f4 ~from wenxin_api.tasks.text_to_image import TextToImage
& H8 u9 `8 Q0 ~, z* a# G9 g0 Uimport secret
_- q) [7 v7 o R; o+ S7 G5 G( Y3 j/ V4 I0 a/ d4 S3 }, t2 K; C
5 M9 a+ J% w' a8 v, odef draw(t, s):- B% B/ m# O# @
wenxin_api.ak = secret.ak& i+ ~& M B/ o$ Y8 Z- a- a" y2 Q' m
wenxin_api.sk = secret.sk* P7 D9 a1 T, F J4 `* Z, p
input_dict = {: P, o9 ~ J* b5 N+ q; X' s
"text": t,
) |* A# {8 ~' r "style": s
9 ` |+ c5 N+ H0 w' H+ B }& Z; s4 x8 O0 s! h/ h7 A/ l' b$ J
rst = TextToImage.create(**input_dict)
7 D& @- n& c/ T9 h" d9 X- i4 s print(rst)
2 i& c. x' X5 ^( P# p# U! }" S# N! w( Y8 m) T, r
" v. h* i! i5 w7 T
if __name__ == '__main__':9 x5 \1 p( N( B. p
text = "夏天": d4 J, x- {+ y# f- x! z1 I
style = "油画"
+ F8 P& U6 r) O7 Q draw(text, style)8 z. q! W& c+ X2 V6 Q [
+ M* A4 O$ i3 O- ]' X* p- R1
4 ?9 ? a" k: f6 l( p" H2
7 F( q. _5 O. R- J3: d0 C4 h5 A2 Q
4& m- r9 M1 r+ _0 S* x) _( J: M
5
2 v0 C4 Y$ H& }$ t: @1 C7 }! O$ N6& {! p7 N& u+ H- @& n
7 T5 S7 V+ ^# s
8
# i; v }! q3 |2 a9 s9
& S% O% J: W$ p* t3 y2 Y10
0 E5 O2 F6 Z9 C) z/ \11# T6 }7 |. \" h0 L X
12
3 h7 ?# Z1 V+ b5 J13
1 }; S) K2 b: ~! f$ q5 N14
1 z' R- T+ R1 Z, f1 U15
0 C3 Y9 C L' P2 Z8 b3 H8 r16
6 y Y3 R" s# z3 z2 {17# a8 f6 I7 }# c2 m3 ^3 x
18
0 j/ Z$ t5 t; z, n' z. E19
& L& j. G8 K$ |" B20( P1 K0 b' K$ t$ I. ^
使用上面的代码,就可以创作出 油画 风格的夏天,可以看看 AI 生成结果。
2 J6 H9 m2 Q+ u. v. v) v7 m+ }( y: c2 M4 `. d- l$ F# S
2022-08-28 12:20:06,785 - model is painting now!, * A' e' ]' ?1 h5 \3 h
- taskId: 1062408, waiting: 30s
; y3 H1 y; W5 j/ m, k9 ?{'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']}
5 ]' Z; n' b8 Q" S2 R1! x/ O( ]+ |7 i Y% ], I& |
2
3 a1 T8 T6 t) d5 P* [& Y! c3; E6 w4 H3 D0 s/ E* g
可以看到速度还是很快的出不多一分钟就搞定了。可以预览一下结果( L' p' {3 v n$ i; z/ f
' q W" _$ h( F: L5 N( u0 w, n2 V4 w% X7 m r9 N
. A( {$ Z+ Z5 e5 |, Y$ v
3 N: J' @/ |7 u( Z8 K$ S& x
% U1 n$ f9 z+ a/ |1 d$ X/ T
) \6 {- N4 B& t, O& I/ Q2 M8 A; V- a3 |1 f; K k2 _
( z; C0 t- X8 H, i, F
可以看到还是很厉害了,水平应可以赶上专科院校的毕业生了,但是作画速度那可是降维打击啊。 S8 c7 {$ ^0 e" u" V
/ n3 A! p* ~0 V8 C. x/ L使用 ERNIe-ViLG 搭配自定义的关键字可以生成 水彩、油画、粉笔画、卡通、蜡笔画、儿童画等多种风格的图片。6 t" S* S3 }; p* H* q
( p4 n' C# T5 T) I. W6 |可以再试一下水彩画风格的天龙八部 。" x: W2 c ?' [
5 h3 Z& r! w+ d- t. {
. j( e# L8 Q8 R" n5 J! B2 d
. s( x& L% N5 _. U, u" [5 ^9 s( u; s
5 ^, }2 D7 A! p7 A+ h
& Z3 N( z/ i) n/ t: c2 n* {! d
. d! R, {- j8 m1 q3 _/ e* w7 |; k( V% j; `0 J
是不是还挺有感觉的。
& ~4 k& _) X" p4 @" E: ?/ C/ \6 @1 ?
DALL·E 2' k1 G' G% P% U' k3 |8 G, u! H* F4 N
当然,说到 AI 绘画,国外大公司也有很厉害的。比如 OpenAI 公司 的 DALL·E 2 。1 W1 \+ v/ k, {$ i' R5 B) m/ x
9 T# p8 G1 J5 ~: m: _* a
比如以写实风格创作一个宇航员骑着一匹马的图像* ^& y8 e* z" S8 W! C8 t5 A
1 d% R- S7 t5 T" U" y
* S& G3 b! {3 X8 D8 y( g. c" W+ c- w' h) o
在换个铅笔画风格的
% R8 r! v6 Z* f9 ^/ N D
# ^7 u+ d; N! V v6 D5 F: _" H2 c5 E" [
( K, W3 J$ }3 U) j3 J1 P
使用 DALL·E 2 可以根据创作风格,更多关键字由 AI 创作出非常有想象力的作品。可以到 DALL·E 2 的主页查看更多更详细的内容。* `; h: o0 E$ d) R
! o" E" I& A6 \; b
总结* W. s" |. [# W4 E& E8 ~
其实用代码直接绘制图形,还有很多其他方案。比如大名鼎鼎的 MATLAB ,可以创作出非常精良的数学几何图形。# e% b( n- E0 y- y2 O% n5 [
' e Q9 w3 V# O" W
但是比较一下上面的这几种方案,可以说 AI 作画的水平,一下子提升了好几个层次。创作需要的输入越来越明确,越来越简答,越发的人性化。但是输出的内容,却越发的开始接近甚至超越了人类的水平。1 G8 Y1 W9 `( b& f* G
5 s: w! m8 N5 l6 y; E
参考文档
2 [* S+ D2 l9 V+ |, i' w7 K字符作画,我用字符画个冰墩墩/ w1 I7 l% r$ j
大家用Python-turtle库作图画出过哪些漂亮的树哇 ?
3 ?+ z; ?- R3 `4 T1 r$ c' Z————————————————# [" y) L, b# i0 F
版权声明:本文为CSDN博主「阎楠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
! v/ G5 _8 J( u* S原文链接:https://blog.csdn.net/TOYOTA11/article/details/126575202
: @1 `/ b% M' M6 e
6 W/ [8 `- \: I* \8 H0 o
8 ~( _) J6 ?! d" N3 m4 @% Q |
zan
|