OpenCV函数用法详解1~10,含代码示例

opencv常用方法1

1.cv2.imread()

读入图像( 读入图像;第一个参数为图像路径;第二个为cv2.IMREAD_COLOR:读入彩色图像;cv2.IMREAD_GRAYSCALE:读入灰度图像。)

img_bg=cv2.imread("C:/Users/Lenovo/PycharmProjects/pythonProject3/IMG_0228.JPG")
print(img_bgr)

如果打印img_bgr,则会输出它的像素点

2.cv2.imshow()

显示图像(image1是窗口名称,img_bgr是要显示的图像)

cv2.imshow('image1', img_bgr)

3.cv2.waitKey()

用于等待按键,当用户按下键盘后,该语句将被执行,并获取其返回值当 delay > 0 时,程序在给定的 delay 时间内等待用户按键触发 或者 等待一个delay时间,程序继续执行。若 delay = 0 时,则表示用户必须点击键盘触发程序继续执行。

cv2.waitKey(5000) # 5000ms,5s 程序继续执行,当然可以点击键盘立即执行

4.cv2.destroyWindow()

用于释放或销毁指定窗口,winname是窗口名称

None = cv2.destroyWindow(winname)

5.cv2.destroyAllWindows()

用于释放或销毁所有窗口

None = cv2.destroyAllWindows()

6.cv2.imwwrite()

用于保存图像,retval 是返回值。如果保存成功,则返回逻辑值真(True);如果保存不成功,则返回逻辑值假(False)

filename是要保存的目标文件路径名,包含文件扩展名。img是被保存的图像名称。

params 是保存类型参数,是可选的。

 retval = cv2.imwwrite(filename,img[, params])

可运行案例

import cv2 as cv
import numpy as np
img = np.ones([400, 400, 1], np.uint8)
img = img*0
# img[:, :, 0] = np.ones([400, 400])*127
cv.imshow("new image", img)
cv.waitKey(5000)  # 5000ms,5s 程序继续执行,当然可以点击键盘立即执行
cv.imwrite("D:/myImage.png", img)

7.图像分类

1.二值图像

二进制图像(仅包括黑白颜色)

白色像素点为1,黑色像素点为0

2.灰度图像

灰度图像(灰度处理为256个灰度级(正好是一个字节)用数值区间[0,255]表示 ),

其中。[0]表示纯黑色,[255] 表示纯白色

3.彩色图像

彩色图像 三基色(红、绿、蓝)

RGB色彩空间中,存在R红色通道、G绿色通道、B蓝色通道

不同组合后可以调配出常见的256256256=16777216种颜色

通道顺序是R->G->B例如(205,89,68)

8.像素处理

#生成一个8*8的二维数组,所有值都为0,,,数据类型为np.uint8,(其实可以看成一个黑色图像。)
#img[0, 3] = 255   是将第0行第3列的像素点设置为255
#img = np.zeros((8, 8), dtype=np.uint8)

import cv2
import numpy as np
img = np.zeros((8, 8), dtype=np.uint8)
print("img = \n", img)
cv2.imshow("one",img)
print("读取像素点 img[0, 3]=", img[0, 3])
img[0, 3] = 255
print("修改后 img = \n", img)
print("读取修改后的像素点 img [0, 3] = ",img[0, 3])
cv2.imshow("two", img)
cv2.waitKey()
cv2.destroyAllWindows()

9.对一块图像的编辑

(即把一整块变成某种颜色)

import cv2
img = cv2.imread("C:/Users/Lenovo/PycharmProjects/pythonProject3/IMG_0228.JPG", 0)
cv2.imshow("before", img)
for i in range(10, 100):
    for j in range(80, 100):
        img[i, j] = 255
cv2.imshow("after", img)
cv2.waitKey()
cv2.destroyAllWindows()

10.创建三个单色图片

其中!前面两个:代表选中图片的所有行数,和列数,1代表第2个通道(0代表第一个通道)。

如果有一个图片img,则img[20:30, 60:70, 1]就表示选中图片的第20到30行,第60到70列,以及第2个通道。

#[300(图片的行数),300(图片的列数,3(图片的通道数)]

import numpy as np
import cv2
# ---------------blue---------------
blue = np.zeros((300, 300, 3), dtype=np.uint8)
blue[:, :, 0] = 255
print("blue = \n", blue)
cv2.imshow("blue", blue)
# -------------green---------------
green = np.zeros((300, 300, 3), dtype=np.uint8)
green[:, :, 1] = 255
print("green = \n", green)
cv2.imshow("green", green)
# -------------red---------------
red = np.zeros((300, 300, 3), dtype=np.uint8)
red[:, :, 2] = 255
print("red = \n", red)
cv2.imshow("red", red)
# -------------释放窗口---------------
cv2.waitKey()
cv2.destroyAllWindows()

版权声明:本文为博主菜鸡圣龙进化菜松鼠原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/QiaoLiu___lq/article/details/123054589

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年2月22日 下午4:47
下一篇 2022年2月22日 下午5:13

相关推荐