5-python图像处理opencv(1.读图,显示,转换,存储)

通过opencv的python接口来,调用opencv函数实现,对图片的载入,显示,颜色转换和保存等

python+opencv的配置

由于:opencv中使用到了python的许多第三方插件,例如 numpy等,以上链接均提供相应配置


一.读图
opencv提供了一个很简单的读图方法, cv2.imread(path)

img = cv2.imread("test1.jpg")

二.显示
opencv 中显示图片需要两步
1.创建一个窗口

cv2.namedWindow("myImage")

2.将图片显示到窗口上

cv2.imshow("myImage",img)

为了防止一闪而过

cv2.waitKey(0) #暂停一下

关闭所有窗口

cv2.destroyAllWindows()

三.色彩变换
opencv中提供了方法 cvtColor(img,cv2.COLOR_RGB2HSV) 创建图像副本,同时也可以对图片进行色彩变换

emptyImage3 = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

有个小的规律,cv.COLOR 后面的东西都有个 2 (two) –> to 即:从什么转化成什么具体转换如下图:(图借鉴的)
这里写图片描述


四.存储
存储,可以使用opencv中的 imwrite(path,img,[int(cv2.IMWRITE_JPEG_QUALITY), 100])
第三个是可选参数不填则默认按照原格式保存

cv2.imwrite("C:/test/save.jpg", img,[int(cv2.IMWRITE_JPEG_QUALITY), 100])

特定格式保存的参数编码:
JPEG:params表示0到100的图片质量(CV_IMWRITE_JPEG_QUALITY),默认值为95;
PNG:params表示压缩级别(CV_IMWRITE_PNG_COMPRESSION),从0到9,其值越大,压缩尺寸越小,压缩时间越长;
PPM / PGM / PBM:params表示二进制格式标志(CV_IMWRITE_PXM_BINARY),取值为0或1,默认值是1。


测试案例

#coding=utf-8
#
# 使用opencv做一个小案例,实现
# 对图片的读取,显示,
# 图片色彩转化 从RGB转换为HSV
# 存储

import cv2

#读图 中文路精可能有问题
img = cv2.imread('C:/test/opencvTest/demoCV1/test.jpg')

# 创建窗口
cv2.namedWindow('imgTest1')

# 显示
cv2.imshow('imgTest1',img)

# 色彩转换
img2 = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
# 创建窗口
cv2.namedWindow('imgTest2')
# 显示
cv2.imshow('imgTest2',img2)
#暂停
cv2.waitKey(0)
#关闭所有窗口
cv2.destroyAllWindows()
#存储位jpg格式,,缩小比率为 0.8
cv2.imwrite("C:/test/opencvTest/demoCV1/save.jpg", img2,[int(cv2.IMWRITE_JPEG_QUALITY), 80])

测试结果:
这里写图片描述
这里写图片描述

参考文章:
http://blog.csdn.net/sunny2038/article/details/9057415

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 利用OpenCV读取一幅彩色图像,并读取图像的基本信息 OpenCV是一个流行的计算机视觉库,它可以用于读取、处理和分析图像和视频数据。我们可以使用OpenCVcv2模块来读取一幅彩色图像,并获取图像的基本信息,如图像大小、通道数、颜色模式等。例如,下面的代码读取一幅名为"example.jpg"的彩色图像,并获取图像的基本信息: ```python import cv2 # 读取彩色图像 img = cv2.imread('example.jpg', 1) # 获取图像的基本信息 height, width, channels = img.shape print('图像宽度:', width) print('图像高度:', height) print('图像通道数:', channels) ``` 2. 利用OpenCV显示图像 使用OpenCV显示图像可以用cv2.imshow()函数。该函数接受两个参数:窗口名称和要显示的图像。例如,下面的代码显示刚刚读取的彩色图像: ```python cv2.imshow('Color Image', img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 该代码会创建一个名为"Color Image"的窗口,并在窗口中显示图像。cv2.waitKey()函数会等待用户按下任意键后关闭窗口。cv2.destroyAllWindows()函数可以用于关闭所有打开的窗口。 3. 对彩色图像进行灰度化处理 灰度化处理是将彩色图像转换为灰度图像的过程。在OpenCV中,可以使用cv2.cvtColor()函数将彩色图像转换为灰度图像。例如,下面的代码将刚刚读取的彩色图像转换为灰度图像: ```python gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ``` 其中,cv2.COLOR_BGR2GRAY是一个转换代码,表示将彩色图像从BGR颜色模式转换为灰度颜色模式。 4. 对灰度图像进行二值化处理 二值化处理是将灰度图像转换为二值图像的过程。在OpenCV中,可以使用cv2.threshold()函数进行二值化处理。该函数接受三个参数:输入图像、阈值和最大值。该函数将会将输入图像中的每个像素值与阈值进行比较,如果像素值大于阈值,则将其赋值为最大值,否则将其赋值为0。例如,下面的代码将刚刚转换的灰度图像进行二值化处理: ```python ret, binary_img = cv2.threshold(gray_img, 127, 255, cv2.THRESH_BINARY) ``` 其中,127是阈值,255是最大值,cv2.THRESH_BINARY是一个二值化模式。 5. 对图像进行几何变换(缩放,平移,翻转) OpenCV提供了一些函数用于对图像进行几何变换,例如缩放、平移和翻转等。以下是一些常用的几何变换函数: - cv2.resize():用于缩放图像。 - cv2.warpAffine():用于进行仿射变换,如平移、旋转和缩放等。 - cv2.flip():用于进行翻转操作,如水平翻转、垂直翻转和同时翻转等。 例如,下面的代码将刚刚读取的彩色图像进行缩放、平移和翻转操作: ```python # 缩放图像 resized_img = cv2.resize(img, (width // 2, height // 2)) # 平移图像 M = np.float32([[1, 0, 100], [0, 1, 50]]) translated_img = cv2.warpAffine(img, M, (width, height)) # 水平翻转图像 flip_h_img = cv2.flip(img, 1) ``` 6. 储存处理后的图像 处理后的图像可以使用cv2.imwrite()函数保存到本地文件。该函数接受两个参数:保存的文件名和要保存的图像。例如,下面的代码将刚刚处理过的二值化图像保存到名为"binary.jpg"的文件中: ```python cv2.imwrite('binary.jpg', binary_img) ``` 以上就是利用OpenCV进行图像处理的基本步骤,包括读取图像、显示图像、处理图像以及保存图像等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鼠晓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值