opencv入门(一)

一.读取图像

import cv2

# 读取图像
retval = cv2.imread("20170701031428774.jpg", -1)
# ("图片在当前路径下的文件名",-1代表保持原有图片格式不变)
print(retval)

.print会打印出图像的像素值:

添加图片注释,不超过 140 字(可选)

二.显示图像

# 显示图像函数
cv2.namedWindow("1")  # namedWindow函数会创建一个小括号里面的名称窗口
cv2.imshow("2", retval)  # ("创建窗口名称",要显示的图片名称)
cv2.waitKey(0)  # 解决创建窗口一闪而过的问题,后边加cv2.waitKey(0)

三.waitKey函数的用法

import cv2

# 主要实现在键盘上按住不同的键,就会显示不同的界面
retval = cv2.imread("20170701031428774.jpg", -1)
cv2.imshow("1", retval)
key = cv2.waitKey()  # 获取键盘上所按下字符的ASC11值
if key == ord("A"):  # 把获取的特定字符的ASC11值,与A 的值比较,ord()函数,获取特定字符的ASC11值
    cv2.imshow("A", retval)
    cv2.waitKey()  # 按下键盘上的A会显示窗口A
elif key == ord("B"):
    cv2.imshow("B", retval)
    cv2.waitKey()  # 按下键盘上的B会显示窗口B

.四.销毁所创建的窗口

# cv2.destroyWindow("1")  # destroyWindow销毁窗口1函数
cv2.destroyAllWindows()  # 括号里什么也没有,销毁所有窗口

.五.保存图像imwrite

retval = cv2.imread("20170701031428774.jpg", -1)
cv2.imshow("1.jpg", retval)  # 文件名后需要加文件格式
# 保存图像
retval1 = cv2.imwrite("2.jpg", retval)  # 文件名后需要加文件格式
# ("另存为图像的名称",需要保存的图像)

六.二值图像

也就是黑白图像,在计算机眼里,黑色为0,白色为1

编辑切换为居中

添加图片注释,不超过 140 字(可选)

每一个小格格就是一个像素点。

计算机眼中的图像:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

七.灰度图像

计算机把0设定为纯白,把255设置为纯黑,0-255之间设置为不同的灰度。

八.彩色图像

由三个R,G,B矩阵组成的图像

编辑切换为居中

添加图片注释,不超过 140 字(可选)

在opencv顺序里,通道顺序是B-G-R。

九.像素出来,像素是图像处理的基本单元

对像素进行基本的像素修改

# 使用numpy库生成一个全是0的8X8的数组,并且对这个数组进行修改和显示
import numpy as np
import cv2

img = np.zeros((8, 8), dtype=np.uint8)  # (数组大小,数值类型是uint8)
print("img=\n", img)
cv2.imshow("1", img)
cv2.waitKey()
print("图像的像素点[0,3]=", img[0, 3])
img[0, 3] = 255
cv2.imshow("2", img)
cv2.waitKey()
print("图像的像素点[0,3]=", img)

.读取一个灰度图像并且对他的像素进行修改

# 读取一个灰度图像,并且对它的像素进行修改和访问
import cv2

img = cv2.imread("22986182_173540093000_2.jpg", -1)
cv2.imshow("1", img)
for i in range(10, 100):
    for j in range(80, 100):
        img[i, j] = 255  # 灰度图像的第10行到99行与第80列到99列的交叉区域像素点设置为255
cv2.imshow("2", img)
cv2.waitKey()
cv2.destroyAllWindows()

.十.对于彩色图像的处理

编辑切换为居中

添加图片注释,不超过 140 字(可选)

使用Numpy生成三维数组,用来观察三个通道值的变化情况。

import cv2
import numpy as np

# 蓝色图像
blue = np.zeros((300, 300, 3), dtype=np.uint8)
blue[:, :, 0] = 255
print("blue=\n", blue)
cv2.imshow("blue", blue)
# 绿色图像
green = np.zeros((300, 300, 3), dtype=np.uint8)
green[:, :, 1] = 255
print("green=\n", green)
cv2.imshow("green", green)
# 红色图像
red = np.zeros((300, 300, 3), dtype=np.uint8)
red[:, :, 2] = 255
print("red=\n", red)
cv2.imshow("red", red)
cv2.waitKey()
cv2.destroyAllWindows()

.使用Numpy生成一个三维数组,用来模拟一幅BGR模式的彩色图像,并对其进行访问、修改。

import numpy as np

img = np.zeros((2, 4, 3), dtype=np.uint8)  # 2X4的矩阵,有三个通道
print("img=\n", img)
print("像素点[0,3]:", img[0, 3])  # 打印第0行3列的BGR值
print("像素点[1,2,2]:", img[1, 2, 2])  # 打印第一行第二列第二个通道值
img[0, 3] = 255
img[0, 0] = [66, 77, 88]
img[1, 1, 1] = 3
img[1, 2, 2] = 4
print("修改后的像素值=\n", img)

.读取一幅彩色图像,并对其像素进行访问、修改。

import cv2

img = cv2.imread("20170701031428774.jpg", -1)
cv2.imshow("1", img)
for i in range(0, 50):
    for j in range(0, 100):
        for k in range(0, 3):
            img[i, j, k] = 255  # 白色
for i in range(50, 100):
    for j in range(0, 100):
        img[i, j] = [128, 128, 128]  # 灰色
for i in range(100, 150):
    for j in range(0, 100):
        img[i, j] = [0, 0, 0]  # 黑色

cv2.imshow("2", img)
cv2.waitKey()
cv2.destroyAllWindows()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值