opencv入门基础(一)图像的基本操作

opencv入门基础(一)图像的基本操作

一.图像基本操作语句

基本语句:
1.读取图片: cv2.imread(“图片地址”)
2.获取图片的形状: img.shape,返回一个(rows,heights,channaels)
3.获取图片的大小: img.size,返回rows * heights * channels的值
4.显示图片: cv2.imshow(“标题”,图片名称)
5.等待: cv2.waitKey(0)
6.关闭: cv2.destoryAllWindows()

import cv2                           # 导入cv2库,cv2又叫opencv-python
img = cv2.imread("C:/tmp/logo.png")  # 注意不在同一目录下的文件目标读取方式
print(img.shape)                     # (655, 655, 3)
print(img.size)                      # 1287075
b,g,r = img[6,40]                    # 查看某个像素点的颜色组成
print(b,g,r)                         # 255 255 255
img[6,10] = (0,0,0)                  # 改变某一个像素点的颜色组成,直接赋值即可
cv2.imshow("hah",img)                # 参数给定需要先给一个题目,再给输出图片名称
cv2.waitKey(0)                       # 等待,要不只显示一下就关闭窗口了
cv2.destroyAllWindows()

二.RGB顺序转换

cv2.split()函数在读取图片颜色三通道信息的时候,默认读取顺序为BGR,转换为RGB的顺序用cv2.merge()函数。

import cv2
import matplotlib.pyplot as plt
img_logo = cv2.imread("C:/tmp/JLUlogo.png")
b,g,r = cv2.split(img_logo)   # 获取整张图片的b,g,r
img_new = cv2.merge([r,g,b])  # 调整b,g,r的顺序
plt.subplot(121)
plt.imshow(img_logo)          # 原图片
plt.subplot(122)
plt.imshow(img_new)           # 新图片
plt.show()

结果为下:(在电脑中打开该图片时,是右图的样子,即按照RGB顺序显示)
在这里插入图片描述

三.argparse模块读取图片

argparse模块使编写用户友好的指令行接口变得容易,程序定义了它需要的参数,而argparse将找出如何从sys.argv中解析这些参数,argparse模块还会自动生成帮助和使用消息,并在用户给程序提供无效参数时发出错误消息。一般使用是,模块使用格式较为固定,记住即可,以下为实例:

import cv2
import argparse
parser = argparse.ArgumentParser()                                # 读取参数
parser.add_argument("path_image",help="path to input the image")  # 添加参数
args = parser.parse_args()                                        # 解析参数
args_dict = vars(parser.parse_args())                             # 加载图片
# {"path_image" : "image/logo.png"},字典形式
img = cv2.imread(args_dict["path_image"])                         # 以字典的形式获取相应的值
cv2.imshow("BITlogo",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果为(注意要在终端Terminal下运行,而不是run,终端的位置要选对!):
在这里插入图片描述

四.argparse模块读取、灰度处理、保存图片

import cv2
import argparse
# 获得参数
parser = argparse.ArgumentParser()
# 添加参数
parser.add_argument("img_input",help="read one image")
parser.add_argument("img_output",help="save the pricessed image")
# 解析参数,以字典形式保存参数和值
args = vars(parser.parse_args())
# 加载图片,[]为字典中的键值
img = cv2.imread(args["img_input"])
# 灰度处理,将img灰度化
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# 保存图片
cv2.imwrite(args["img_output"],img_gray)
# 显示图片
cv2.imshow("Original Image",img)
cv2.imshow("Gray Image",img_gray)
cv2.waitKey()
cv2.destroyAllWindows()

结果为(依然要在终端Terminal下运行):
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值