一、读取显示
方法一:OpenCV
import matplotlib
.pyplot
as plt
import PIL
.Image
as image
import cv2
import numpy
imagea_path
= './demo/inputs/birds.jpg'
image_cv2
= cv2
.imread
(imagea_path
)
print(type(image_cv2
),image_cv2
.shape
)
cv2
.imshow
('cv2',image_cv2
)
cv2
.waitKey
(0)
方法二:Matplotlib
import matplotlib
.pyplot
as plt
import PIL
.Image
as image
import cv2
import numpy
imagea_path
= './demo/inputs/birds.jpg'
image_plt
= plt
.imread
(imagea_path
)
print(type(image_plt
),image_plt
.shape
)
plt
.imshow
(image_plt
)
plt
.show
()
方法三:PIL+plt
import matplotlib
.pyplot
as plt
import PIL
.Image
as image
import cv2
import numpy
imagea_path
= './demo/inputs/birds.jpg'
image_image
= image
.open(imagea_path
)
print(type(image_image
),image_image
.size
)
plt
.imshow
(image_image
)
plt
.show
()
方法三:PIL+cv2
import matplotlib
.pyplot
as plt
import PIL
.Image
as image
import cv2
import numpy
imagea_path
= './demo/inputs/birds.jpg'
image_image
= image
.open(imagea_path
)
print('1',type(image_image
),image_image
.size
)
image_image
= numpy
.array
(image_image
)
print('2',type(image_image
),image_image
.size
)
cv2
.imshow
('x',image_image
)
cv2
.waitKey
(0)
使用cv2显示图片的话,输入必须是numpy.ndarray类型,而image.open()读出的并不是,所以需要类型转化。
二、保存
方法一:CV2
import matplotlib
.pyplot
as plt
import PIL
.Image
as image
import cv2
import numpy
import os
import argparse
parser
= argparse
.ArgumentParser
()
parser
.add_argument
('--image-path',type=str,default
='./demo/inputs')
parser
.add_argument
('--save-path',type=str,default
='./demo/output')
args
= parser
.parse_args
()
if not os
.path
.exists
(args
.save_path
):
os
.makedirs
(args
.save_path
)
def main(args
):
name_list
= os
.listdir
(args
.image_path
)
for name
in name_list
:
img_path
= os
.path
.join
(os
.getcwd
(),'demo/inputs',name
)
image
= cv2
.imread
(img_path
)
image_crop
= image
[0:300,0:300]
cv2
.imwrite
(img_path
.replace
('inputs','output'),image_crop
)
if __name__
== '__main__':
main
(args
)
方法二:plt.imsave()
import matplotlib
.pyplot
as plt
import PIL
.Image
as image
import cv2
import numpy
import os
import argparse
parser
= argparse
.ArgumentParser
()
parser
.add_argument
('--image-path',type=str,default
='./demo/inputs')
parser
.add_argument
('--save-path',type=str,default
='./demo/output')
args
= parser
.parse_args
()
if not os
.path
.exists
(args
.save_path
):
os
.makedirs
(args
.save_path
)
def main(args
):
name_list
= os
.listdir
(args
.image_path
)
for name
in name_list
:
img_path
= os
.path
.join
(os
.getcwd
(),'demo/inputs',name
)
image
= plt
.imread
(img_path
)
image_crop
= image
[0:300,0:300]
plt
.imsave
(img_path
.replace
('inputs','output'),image_crop
)
if __name__
== '__main__':
main
(args
)
方法三:plt.savefig()
import matplotlib
.pyplot
as plt
import PIL
.Image
as image
import cv2
import numpy
from torchvision
import transforms
unloader
=transforms
.ToPILImage
()
import os
import argparse
parser
= argparse
.ArgumentParser
()
parser
.add_argument
('--image-path',type=str,default
='./demo/inputs')
parser
.add_argument
('--save-path',type=str,default
='./demo/output')
args
= parser
.parse_args
()
if not os
.path
.exists
(args
.save_path
):
os
.makedirs
(args
.save_path
)
def main(args
):
name_list
= os
.listdir
(args
.image_path
)
for name
in name_list
:
img_path
= os
.path
.join
(os
.getcwd
(),'demo/inputs',name
)
image
= plt
.imread
(img_path
)
image_crop
= image
[0:300,0:300]
plt
.imshow
(image_crop
)
plt
.savefig
(img_path
.replace
('inputs','output'))
if __name__
== '__main__':
main
(args
)
方法四:save()
import matplotlib
.pyplot
as plt
import PIL
.Image
as image
import cv2
import numpy
from torchvision
import transforms
unloader
=transforms
.ToPILImage
()
import os
import argparse
parser
= argparse
.ArgumentParser
()
parser
.add_argument
('--image-path',type=str,default
='./demo/inputs')
parser
.add_argument
('--save-path',type=str,default
='./demo/output')
args
= parser
.parse_args
()
if not os
.path
.exists
(args
.save_path
):
os
.makedirs
(args
.save_path
)
def main(args
):
name_list
= os
.listdir
(args
.image_path
)
for name
in name_list
:
img_path
= os
.path
.join
(os
.getcwd
(),'demo/inputs',name
)
image
= plt
.imread
(img_path
)
image_crop
= image
[0:300,0:300]
image_crop
= unloader
(image_crop
)
image_crop
.save
(img_path
.replace
('inputs','output'))
if __name__
== '__main__':
main
(args
)
参考文献: 1.《学习日志(十五):图片裁剪crop》
转载请注明原文地址:https://ipadbbs.8miu.com/read-55583.html