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