网站建设营销外包公司,做可视化图表的网站,金融社区类网站建设,园林景观设计公司open cv 入门
像素的操作
demo1
import cv2
import os
import numpy as np# 1、读取图像
# imread()方法# 设置图像的路径
Path ./img.png
# 设置读取颜色类型默认是1代表彩色图 0 代表灰度图
# 彩色图
flag 1
# 灰度图
#flag 0# 读取图像#xff0c;返回值…open cv 入门
像素的操作
demo1
import cv2
import os
import numpy as np# 1、读取图像
# imread()方法# 设置图像的路径
Path ./img.png
# 设置读取颜色类型默认是1代表彩色图 0 代表灰度图
# 彩色图
flag 1
# 灰度图
#flag 0# 读取图像返回值是一个图像对象image cv2.imread(Path, flag)# 0 ~ 255代表黑色到纯白色# 打印该图像输出的是部分像素值
# print(image)# 2、显示图像# 显示图像cv2.imshow(QQ, image)# 等待按键按下,单位是mscv2.waitKey()# 按下任意按键后摧毁所有窗口
cv2.destroyAllWindows()# 3、保存图像# 创建目录
# 在当前目录下创建一个目录
directory ./My_Test_Photos
# 如果不存在则创建
if not os.path.exists(directory):os.makedirs(directory)# 保存图像到指定目录
file_path os.path.join(directory, test01.jpg)
cv2.imwrite(file_path, image)# 4、获取图像属性# shape (垂直像素数 水平像素数 通道数)# size (像素点总个数 垂直像素数 × 水平像素数 × 通道数) 灰度图通道数为 1# dtype 图像的数据类型image_Color cv2.imread(Path,0)
print(image_Color.shape)
print(image_Color.size)
print(image_Color.dtype)demo2
import cv2image cv2.imread(./cat.jpg)cv2.imshow(cat, image)for i in range(241, 292):for j in range(168, 219):image[i, j] [255, 255, 255]
cv2.imshow(mycat, image)
cv2.waitKey()
cv2.destroyAllWindows()demo3
import numpy as np# 创建一维数组和二维数组
n1 np.array([1, 2, 3])
n2 np.array([0.1, 0.2, 0.3])
n3 np.array([[1, 2], [3, 4]])print(n1, n2, n3)# 创建浮点数类型
my_list [1, 2, 3]n1 np.array(my_list, dtypenp.float_)# n1 np.array(my_list, dtypefloat)
print(n1)
print(n1.dtype)
print(type(n1[0]))# 创建三维数组nd1 [1, 2, 3]
nd2 np.array(nd1, ndmin3)print(nd2)demo4
import numpy as np
# 指定维度数据类型未定义
n np.empty([2, 3])print(n)# 创建全零数组
n1 np.zeros((3, 3), dtypenp.uint8)print(n1)
# 创建全一数组
ones np.ones((4, 4), np.float_)
print(ones)# 创建随机数组,三行三列范围0-20
rand np.random.randint(0, 20, (3, 3))print(rand)demo5
import cv2
import numpy as np
# 在opencv中黑白图像是一个二维数组彩色图像是一个三维数组# 创建黑白图像
flag True
if flag:width 200height 100img np.zeros((height, width), np.uint8)img[25:75, 50:100] 255cv2.imshow(img, img)cv2.waitKey()cv2.destroyAllWindows()else:width 200height 100img np.ones((height, width), np.uint8)*255cv2.imshow(img, img)cv2.waitKey()cv2.destroyAllWindows()demo6
import cv2
import numpy as npwidth 200
height 100img np.zeros((height, width), np.uint8)
for i in range(0, width, 40):img[:, i20] 255
cv2.imshow(img, img)
cv2.waitKey()
cv2.destroyAllWindows()demo7
import cv2
import numpy as npwidth 200
height 100# 创建指定宽高、3通道、像素值都为0的图像img np.zeros((height, width, 3), np.uint8)blue img.copy()blue[:, :, 0] 255 # 通道1的所有像素值都为255green img.copy()green[:, :, 1] 255 # 通道2的所有像素值都为255red img.copy()red[:, :, 2] 255 # 通道3的所有像素值都为255
cv2.imshow(blue, blue)
cv2.imshow(green, green)
cv2.imshow(red, red)
cv2.waitKey()
cv2.destroyAllWindows()demo8
import cv2
import numpy as np# 创建随机图像
width 200
height 100img np.random.randint(256, size(height, width, 3), dtypenp.uint8)cv2.imshow(img, img)
cv2.waitKey()
cv2.destroyAllWindows()demo9
import cv2
import numpy as np# 拼接图像a np.array([1, 2, 3])
b np.array([4, 5, 6])
c np.array([7, 8, 9])
result np.hstack((a, b, c))print(result)demo10
import cv2
import numpy as np
# 垂直拼接
a np.array([1, 2, 3])
b np.array([4, 5, 6])
c np.array([7, 8, 9])
result np.vstack((a, b, c))print(result)demo11
import cv2
import numpy as np
Path ./cat.jpg
img cv2.imread(Path)
img_h np.hstack((img, img))
img_v np.vstack((img, img))cv2.imshow(img_h, img_h)
cv2.imshow(img_v, img_v)cv2.waitKey()
cv2.destroyAllWindows()