ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

计算机视觉——1

2022-03-20 22:00:05  阅读:159  来源: 互联网

标签:计算机 image cv2 像素 np n1 print 视觉


图片显示:

import cv2
image = cv2.imread("3.1.jpeg")
cv2.imshow("flower",image)#显示的照片会自动销毁
#显示图像若没有下一句则照片会直接销毁,不会停留,
cv2.waitKey(10000)#目的:停顿当前场景一段时间
#此时电脑等待用户按键,若没有按键则会等待设置的时长然后才会执行下一句,若按键了会直接执行下一句,参数为0、负数、或空无限等待
cv2.destroyAllWindows()
#销毁所有正在显示的窗口
#cv2.imwrite("C:\.android",image)#这个路径有问题,换一个正确的路径就行
# D:/3.1.jpeg等同于D:\\3.1.jpeg 将照片保存到C盘下

输出位置:

#路径、窗口名中不可出现中文
import cv2
image = cv2.imread("3.1.jpeg")
#返回值就是图像,image即图像

for i in range(0,20):
    for j in range(0,20):
        image[i,j] = [0,0,255]
for i in range(0,20):
    for j in range(1003,1023):
        image[i,j] = [255,255,255]
for i in range(662,682):
    for j in range(1003,1023):
        image[i,j] = [0,255,0]
for i in range(662,682):
    for j in range(0,20):
        image[i,j] = [0,0,0]
for i in range(340,360):
    for j in range(490,510):
        image[i,j] = [0,255,255]
cv2.imshow("20040420",image)
cv2.waitKey()#此时等待用户按键,参数为0、负数、或空无限等待

获取图像属性:

#每幅图像都是由M行N列的像素(每一个小方块或者圆形或者其他形状)组成的,每一个像素都储存着一个像素值
import cv2
image = cv2.imread("3.1.jpeg")
print("获取色彩图像的属性:")
print("shape =",image.shape)
#获取像素个数
#返回垂直像素,水平像素,通道数,灰色图片通道数为1
print("size =",image.size)
#获取图片元素大小即垂直像素*水平像素*通道数
print("dtype =",image.dtype)
#获取图像的数据类型
image_Gray = cv2.imread("3.1.jpeg",0)
#读取与彩色图像对应的灰色图像,0表示灰色,1表示彩色可忽略不写,因为默认彩色
print("获取灰度图像的属性:")
print("shape =",image_Gray.shape)
print("size =",image_Gray.size)
print("dtype =",image_Gray.dtype)

px = image[291,218]
#获取当前位置的像素值
#PX为当前像素(当前小方块,先纵列再行)的像素值按照BGR返回(BLUE,GREEN,RED)
#把每一种颜色分量所在的区域叫做通道
#横轴像素有219个,对应的取值范围是0~218
#纵轴类似
print("坐标(291,218)上的像素的BGR是",px)
#输出像素值
px = [255,255,255]
#修改像素值,将(291,218)位置上的像素修改为【255,255,255】
print("改变后的元素值",px)

blue1 = image[:,:,0]#获取坐标(219,218)上B通道的像素值
green1 = image[:,:,1]#获取坐标(219,218)上G通道的像素值
red1 = image[:,:,2]#获取坐标(219,218)上R通道的像素值

数组:

import cv2
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)

#通过dtype,指定数组数据类型
list = [1,2,3]
n1 = np.array(list, dtype = np.float_)
n2 = np.array(list, dtype = float)
print(n1, n2)
print(n1.dtype)
print(type(n1[0]))

#创建三维数组 ndmin为3即为三维数组
nd1 = [1,2,3]
nd2 = np.array(nd1, ndmin = 3)
print(nd2)

#创建两行三列未初始化数组
n = np.empty([2,3])
print(n)

#创建无符号8位整数纯0数组
n = np.zeros((3,3),np.uint8)
#创建纯1数组
n = np.ones((3,3),np.uint8)

#随机数、数组的生成
n1 = np.random.randint(1,3,10)
print("随机生成10个1~3且不包括3的整数:")
print(n1)
n2 = np.random.randint(5,10)
print("size数组大小为空随机返回一个整数")
print(n2)
n3 = np.random.randint(5,size = (2,5))
print("随机生成5以内二维数组")

#数组加法
n1 = np.array([1,2,3])
n2 = np.array([4,5,6])
print(n1+n2)
#数组减法
print(n1-n2)
#数组乘法
print(n1*n2)
#数组除法
print(n1/n2)
#数组幂运算
print(n1**n2)
#数组比较运算返回TRUE/FALSE
print(n1 >= n2)
print(n1 == n2)
print(n1 <= n2)
print(n1 != n2)
#复制数组   两种
n2 = np.array(n1,copy = True)
n2 = n1.copy()

#以下分为两种 直接得到元素(取位置)或得到数组(切片)

#数组索引
print(n1[0])
#数组切片取前一个不取后一个,step为步长,当step为负数时表示倒着走
print(n1[0:2])
print(n1[1:])
print(n1[:3])
#反向索引 s
print(n1[-1])
print(n1[-1:-3:-1])
print(n1[::-1])
#二维数组索引
n = np.array([[0,1,2,3],[2,3,4,5],[7,3,4,5,]])
print(n[1])
print(n[1,2])
print(n[-1])
#二维数组切片
print(n[:2,1:])
print(n[1,:2])
print(n[:2,2])
print(n[:,:1])  #操作第一个切片之后剩下三个数组,后来的切边对每个数组都操作

#数组行索引 = 像素所在行数-1 = 像素纵坐标
#数组列索引 = 像素所在列数-1 = 像素横坐标

#创建图像
width = 200
height = 100
img = np.zeros((height,width),np.uint8)
cv2.imshow("img",img)
cv2.waitKey()
cv2.destroyAllWindows()


标签:计算机,image,cv2,像素,np,n1,print,视觉
来源: https://blog.csdn.net/qq_56762247/article/details/123622496

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有