OpenCv-01

使用opencv对图像进行一些简单的处理

首先知道自己的工作目录

python 复制代码
import os
cwd=os.getcwd()

命名一张图片

python 复制代码
my_image='lenna.png'

获得图片路径

python 复制代码
image_path=os.path.join(cwd,my_image)

import cv2

image=cv2.imread(my_image) #imread()函数将图片转换为ndarray数组

image.shape#(512,512,3),与pillow不同的是,opencv返回的是BGR格式,每个像素能取的像素强度范围是[0,255],通过max和min获取最大和最小值

展现一张图片

cv2.imshow('image',image)

也可用matplotlib

import matplotlib.pyplot as plt

plt.figure(figsize=(10,10))

plt.imshow(image)

plt.show()

结果是蓝色的一张图片,这是因为返回的是BGR格式,经过下面的处理,返回的就是正常的格式了。

new_image=cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

plt.figure(figsize=(10,10))

plt.imshow(new_image)

plt.show()

可将png转为jpg

cv2.imwrite("lenna.jpg", image)

2.把彩色图像变成灰色图像

image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

image_gray.shape #(512,512)

将它画出来

plt.figure(figsize=(10, 10))

plt.imshow(image_gray, cmap='gray')

plt.show()

3.分离不同的通道

python 复制代码
baboon=cv2.imread('baboon.png')

blue, green, red = baboon[:, :, 0], baboon[:, :, 1], baboon[:, :, 2]

im_bgr = cv2.vconcat([blue, green, red])
python 复制代码
plt.figure(figsize=(10,10))
plt.subplot(121)
plt.imshow(cv2.cvtColor(baboon, cv2.COLOR_BGR2RGB))
plt.title("RGB image")
plt.subplot(122)
plt.imshow(im_bgr,cmap='gray')
plt.title("Different color channels  blue (top), green (middle), red (bottom)  ")
plt.show()
相关推荐
yaosheng_VALVE11 小时前
探究全金属硬密封蝶阀的奥秘-耀圣控制
运维·eclipse·自动化·pyqt·1024程序员节
dami_king11 小时前
SSH特性|组成|SSH是什么?
运维·ssh·1024程序员节
一个通信老学姐5 天前
专业125+总分400+南京理工大学818考研经验南理工电子信息与通信工程,真题,大纲,参考书。
考研·信息与通信·信号处理·1024程序员节
sheng12345678rui5 天前
mfc140.dll文件缺失的修复方法分享,全面分析mfc140.dll的几种解决方法
游戏·电脑·dll文件·dll修复工具·1024程序员节
huipeng9266 天前
第十章 类和对象(二)
java·开发语言·学习·1024程序员节
earthzhang20217 天前
《深入浅出HTTPS》读书笔记(19):密钥
开发语言·网络协议·算法·https·1024程序员节
爱吃生蚝的于勒7 天前
计算机基础 原码反码补码问题
经验分享·笔记·计算机网络·其他·1024程序员节
earthzhang20217 天前
《深入浅出HTTPS》读书笔记(20):口令和PEB算法
开发语言·网络协议·算法·https·1024程序员节
一个通信老学姐8 天前
专业140+总分410+浙江大学842信号系统与数字电路考研经验浙大电子信息与通信工程,真题,大纲,参考书。
考研·信息与通信·信号处理·1024程序员节
earthzhang20218 天前
《深入浅出HTTPS》读书笔记(18):公开密钥算法RSA(续)
网络·网络协议·算法·https·1024程序员节