# C h; U+ x( ]- C 0 V% e M; f% {$ B9 P9 v 0 u' z! _( ^6 J- d, B5 D) ?# G问题) ?# i* k# x9 |) }
# a' T; F+ J+ i0 \8 I1 G. ?) I
(1)在刚写出来时,在rotate_image()函数中没有加,im = im.convert(‘RGB’)这句话,就会出现有的图正常,但是有的图报错,无法保存,并显示下面这句话 A' J/ E9 f2 ?; ~4 C
6 S% o0 L" ^. v3 b S3 I/ a这个问题可以在这一篇blog找到解决方法。就是im.read(url)后,再将图片转换为RGB格式(image.convert(‘RGB’))。这样就可以避免很多因图片导致的问题/ q/ w" O4 r1 }3 o0 r& Q' m; K+ j
6 {' R* r4 b) c' E7 R
(2)在matlabplot中,显示图的第一步是创建画布,plt.figure(),然后在画布上添加子图,最后显示整个画布的图像时,并且让子图自适应来显示。而我遇到了这个就是关于self.figure.tight_layout()的警告,见下图。 ' T; z) o7 A6 j/ k( F0 S: P- g- x5 A4 |, l% N: z
一般在使用plt创建一个画布后,程序本身会有一个自动调整子图尺寸来使用画布的情况,但是因为我是显示图片,所以这个自适应就出问题了。但是还好,只是警告,不是报错,为了方便,忽略就好…(但是我不推荐这种做法,希望有人研究一下,并把解决问题告诉我) 3 H( T' o, s7 Y9 Z6 j为了方便,我直接在一开始加上下面这句,忽略掉。: M% v% M: E. K) y3 V R. {$ ]
import warnings 2 T4 E8 T3 E4 e" @, Qwarnings.filterwarnings("ignore")& y% K2 o7 P* j: Q. m8 I
7 _4 X' w: J/ @2 L' \3 m要点+ g, |; v+ \8 j+ E$ C
* D. ^& k! @& j# h; m5 R
1旋转图像现成的工具很多,一个是cv2提供的,主要调用getRotationMatrix2D()函数和warpAffine()函数实现,绕图像的中心旋转。但是它是以坐标轴为基础,绕中心旋转。那么就会出现一个问题,旋转后超出边界的图像缺失,而没有图像覆盖的背景会很突兀。此方法效果见下图:- w3 o A d$ V8 s- x
" P+ y4 A. Y( S. N0 z- q @$ M5 i! u