OpenCV基础操作_图片读取和保存

目录

1 图片读取

2 图片保存

1 图片读取

在OpenCV中,加载图片采用imread()函数。

函数详细说明在:Reading and Writing Images and Video — OpenCV 2.4.13.7 documentation

Python: cv2. imread(filename[, flags])

函数功能:

imread 功能是加载图像文件成为一个 Mat 对象。

imread支持的文件类型有:

  • Windows bitmaps –*.bmp, *.dib (always supported)
  • JPEG files –*.jpeg, *.jpg, *.jpe (see the Notes section)
  • JPEG 2000 files –*.jp2 (see the Notes section)
  • Portable Network Graphics –*.png (see the Notes section)
  • Portable image format –*.pbm, *.pgm, *.ppm (always supported)
  • Sun rasters –*.sr, *.ras (always supported)
  • TIFF files –*.tiff, *.tif (see the Notes section)

参数说明:

第一个参数表示图像文件名称;

第二个参数表示加载的图像是什么类型,支持常见的三个参数值。可以直接使用数字来代替(1,0,-1),默认值为IMREAD_UNCHANDED.

  • IMREAD_UNCHANDED(

接下来,我们分别用三个Flag加载图片:

import cv2

img = cv2.imread("./1.jpeg")

打印图像类型
print(type(img))
print(img)

cv2.imshow("image",img)

cv2.waitKey(0)

cv2.destroyAllWindows()

按任意键退出弹出的画面。

原图:

OpenCV基础操作_图片读取和保存

IMREAD_UNCHANDED图如下:

OpenCV基础操作_图片读取和保存
<class 'numpy.ndarray'>
[[[248 201 140]
  [248 201 140]
  [248 201 140]
  ...

  [244 222 204]
  [244 222 204]
  [244 222 204]]

 [[248 201 140]
  [248 201 140]
  [248 201 140]
......</class>

IMREAD_GRAYSCALE图和打印如下:

OpenCV基础操作_图片读取和保存
<class 'numpy.ndarray'>
[[188 188 188 ... 219 219 219]
 [188 188 188 ... 219 219 219]
 [188 188 188 ... 218 218 218]
 ...

 [ 41  34  25 ... 121 121 123]
 [ 55  49  41 ... 136 134 135]
 [ 77  70  59 ... 125 126 129]]</class>

IMREAD_COLOR图和打印如下:

OpenCV基础操作_图片读取和保存
<class 'numpy.ndarray'>
[[[248 201 140]
  [248 201 140]
  [248 201 140]
  ...

  [244 222 204]
  [244 222 204]
  [244 222 204]]

 [[248 201 140]
  [248 201 140]
  [248 201 140]
  ...

</class>

2 图片保存

图片保存使用的是imwrite()或是SaveImage()

Python: cv2. imwrite(filename, img[, params])

Python: cv. SaveImage(filename, image)

原函数定义如下:Reading and Writing Images and Video — OpenCV 2.4.13.7 documentation

函数功能:

将mat格式转换为image文件保存,支持的格式和imread一致。

函数参数:

filename:保存的文件名。后缀名将会被自动用来表示标示文件类型。

image:图片数据

parems:表示为特定格式保存的参数编码,它有默认值。参数是以参数对的方式进行设置的。

  • 对于JPEG格式的图片,这个参数表示从0-100的图片质量(CV_IMWRITE_JPEG_QUALITY),默认值是95.

  • 对于PNG格式的图片,这个参数表示压缩级别(CV_IMWRITE_PNG_COMPRESSION)从0-9.较高的值意味着更小的尺寸和更长的压缩时间而默认值是3.

  • 对于PPM,PGM或PBM格式的图片,这个参数表示一个二进制格式标志(CV_IMWRITE_PXM_BINARY),取值为0或1,而默认值为1.

下面保存成jpg的图片看看:

import cv2

img = cv2.imread("./1.jpeg")

&#x6253;&#x5370;&#x56FE;&#x50CF;&#x7C7B;&#x578B;
print(type(img))
print(img)

cv2.imshow("image",img)

cv2.waitKey(0)

cv2.destroyAllWindows()

cv2.imwrite("demo_output_qd.jpg",img)
cv2.imwrite("demo_output_Q10.jpg",img,[int(cv2.IMWRITE_JPEG_QUALITY),10])
cv2.imwrite("demo_output_Q100.jpg",img,[int(cv2.IMWRITE_JPEG_QUALITY),100])

在同级目录下面新增加了3个文件:

OpenCV基础操作_图片读取和保存

比如:CV_IMWRITE_JPEG_QUALITY为10:

OpenCV基础操作_图片读取和保存

而当这个值为100时候:

OpenCV基础操作_图片读取和保存

Original: https://blog.csdn.net/putiancaijunyu/article/details/123847271
Author: 孤独的小丑
Title: OpenCV基础操作_图片读取和保存

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/647449/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球