环保网页设计素材,常德网站建设网站优化,重庆最新消息今天,网站建设公司业务在哪里来OpenCV是一个开源的计算机视觉库#xff0c;可以处理图像和视频数据。它包含了超过2500个优化过的算法#xff0c;用于对图像和视频进行处理#xff0c;包括目标识别、面部识别、运动跟踪、立体视觉等。OpenCV支持多种编程语言#xff0c;包括C、Python、Java等#xff0c…OpenCV是一个开源的计算机视觉库可以处理图像和视频数据。它包含了超过2500个优化过的算法用于对图像和视频进行处理包括目标识别、面部识别、运动跟踪、立体视觉等。OpenCV支持多种编程语言包括C、Python、Java等可以在Windows、Linux、Mac OS X、Android等多个平台上使用。
图像
图像和视频数是指数字图像和数字视频中包含的像素或帧数。在数字图像中图像数指的是图像中包含的像素数量通常用宽度和高度的乘积来表示。在数字视频中视频数指的是视频中包含的帧数即视频中连续的静止图像序列数量。图像和视频数是指数字图像和数字视频中包含的像素或帧数。在数字图像中图像数指的是图像中包含的像素数量通常用宽度和高度的乘积来表示。在数字视频中视频数指的是视频中包含的帧数即视频中连续的静止图像序列数量。 我在Vscode学OpenCV 图像 如果遇到了cv2无法有智能提示的功能一、图像基本操作1.1 读取图像1.1.1 演示1.1.2 支持1.1.3 flag部分解释1.*.1_ 什么是alpha通道1.*.2_ 灰度图后使用 print 语句打印读取的图像数据。 1.2 显示图像1.2.1 imshow函数__在一个窗口内显示读取的图像。1.2.2 namedWindow__创建指定名称的窗口1.2.3 waitKey函数1.2.3.1 要实现交互可以使用cv2.waitKey函数来等待键盘输入 1.2.4 destroyWindow函数1.2.5 destroyAllWindows 1.3 保存图像 cv2.imwrite() pip install opencv-contrib-python 直接安装编译好的 OpenCV 贡献库 如果遇到了cv2无法有智能提示的功能
就把你下载cv2的路径下安装包cv2的pyd复制到你现在使用的Python解释器路径的文件下面
一、图像基本操作
导入所需要的库使用 pip install 完整路径文件名完成安装
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt1.1 读取图像 img cv2.imread(filename, flagsNone)img是返回值其值是读取到的图像。如果未读取到图像则返回“None”。filename 表示要读取的图像的完整文件名。flags 是读取标记。该标记用来控制读取文件的类型 1.1.1 演示
使用的照片
# 图像IO操作
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt# 1.读取图像img cv.imread(Pic/f2e919585490afd1bebd313257e7ad9.jpg)# 2、显示图像
## 2.1 OpenCV中的方法
cv.imshow(THIS Pi, img)
cv.waitKey(0)
# 按照窗口显示的
cv.destroyAllWindows()1.1.2 支持 1.1.3 flag cv2.IMREAD_UNCHANGED和cv2.IMREAD_GRAYSCALE是OpenCV库中用于读取图像的两种不同的模式。 cv2.IMREAD_UNCHANGED这个模式会读取图像的原始数据包括alpha通道如果存在的话。也就是说如果图像是彩色的那么它会保持彩色如果图像有alpha通道那么alpha通道也会被保留。 cv2.IMREAD_GRAYSCALE这个模式会将图像转换为灰度图像。也就是说无论原始图像是彩色的还是带有alpha通道的读取后的图像都会是灰度的。加粗样式
- IMREAD_UNCHANGED -1返回原始图像包括alpha通道如果存在在内的所有信息即原始图像。- IMREAD_GRAYSCALE 0将图像转换为灰度图像。- IMREAD_COLOR 1返回BGR顺序的彩色图像,忽略alpha通道。- IMREAD_ANYDEPTH 2如果图像具有深度信息保留这些信息(则返回16位/32位图像)否则将图像转换为8位。- IMREAD_ANYCOLOR 4尝试以最可能的颜色格式读取图像。- IMREAD_LOAD_GDAL 8使用GDAL驱动来读取图像。- IMREAD_REDUCED_GRAYSCALE_2 16, IMREAD_REDUCED_GRAYSCALE_4 32, IMREAD_REDUCED_GRAYSCALE_8 64将图像转换为单通道灰度图像并减少图像的大小分别减少1/2、1/4、1/8。- IMREAD_REDUCED_COLOR_2 17, IMREAD_REDUCED_COLOR_4 33, IMREAD_REDUCED_COLOR_8 65转换图像为3通道BGR彩色图像并减少图像的大小分别减少1/2、1/4、1/8。- IMREAD_IGNORE_ORIENTATION 128忽略EXIF元数据中的定位信息不旋转图像。这些标志可以根据你的需求进行组合使用例如你可以同时使用IMREAD_GRAYSCALE和IMREAD_REDUCED_GRAYSCALE_2这样OpenCV会读取灰度图像并将其大小减少一半。部分解释
1.*.1_ 什么是alpha通道
Alpha通道是图像中的一个通道它表示图像的透明度信息。在一个RGBA颜色模型中R代表红色G代表绿色B代表蓝色A代表Alpha即透明度。
Alpha通道的值通常在0到255之间其中0表示完全透明255表示完全不透明。通过改变Alpha通道的值我们可以改变图像的透明度。例如如果我们将一个像素的Alpha值设置为127那么这个像素将会是半透明的。
Alpha通道在图像处理中有很多应用例如在合成两个图像时我们可以通过调整Alpha通道的值来控制每个图像的可见度。 常见的色彩深度有 1位二值图像只有黑和白两种颜色。8位灰度图像可以表示256种不同的灰度级别。24位真彩色图像每个颜色通道红、绿、蓝使用8位可以表示约1670万种颜色。32位包含alpha通道的真彩色图像每个颜色通道红、绿、蓝和alpha使用8位。 所以如果你问的是像素可以表示的颜色数量那么 1位色彩深度可以表示2种颜色。8位色彩深度可以表示256种颜色。24位色彩深度可以表示约1670万种颜色。32位色彩深度理论上可以表示约429亿种颜色但实际上由于alpha通道表示的是透明度而非颜色所以可表示的颜色数量仍然是约1670万种。 彩色深度标准通常有以下几种 8位色每个像素所能显示的彩色数为2的8次方即256种颜色。16位增强色16位彩色每个像素所能显示的彩色数为2的16次方即65536种颜色。24位真彩色每个像素所能显示的彩色数为24位即2的24次方约1680万种颜色。32位真彩色即在24位真彩色图像的基础上再增加一个表示图像透明度信息的Alpha通道。 1.*.2_ 灰度图后使用 print 语句打印读取的图像数据。 输出图像的部分像素值 256个灰度等级255代表全白0表示全黑。 灰度图的显示的print 原格式的print
1.2 显示图像
在读取图像前判断图像文件是否存在并在显示图像前判断图像是否存在
1.2.1 imshow函数__在一个窗口内显示读取的图像。
img cv2.imshow( winname, mat )winname 是窗口名称、mat 是要显示的图像。
cv2.imshow(THIS Pi, img)
cv2.imshow(THIS Pi, img)如果是两个同名的只会显示一个窗口
cv2.namedWindow(lesson)
cv2.imshow(THIS Pi, img)
cv2.imshow(lesson, img) 引用一个并不存在的窗口并在其中显示指定图像可以用cv2.imshow()来创建一个新窗口并显示图像。如果指定的窗口名称已存在则会在该窗口中显示图像。如果指定的窗口名称不存在则会创建一个新的窗口并显示图像。实际上cv2.imshow()函数会完成窗口的创建和图像的显示两个步骤。
1.2.2 namedWindow__创建指定名称的窗口 img cv2.namedWindow( winname )1.2.3 waitKey函数
cv2.waitKey( [delay] )retval表示函数cv2.waitKey()的返回值。如果没有按键被按下则返回-1如果有按键被按下则返回该按键的ASCII码。 delay表示等待键盘触发的时间单位是毫秒。当该值设置为负数或零时表示无限等待即函数会一直等待键盘的触发。该值默认为0。 1.2.3.1 要实现交互可以使用cv2.waitKey函数来等待键盘输入
import cv2# 读取图像
image cv2.imread(image.jpg)while True:# 在窗口中显示图像cv2.imshow(Image, image)# 等待键盘输入等待时间为0毫秒key cv2.waitKey(0)# 如果按下键盘上的 q 键退出循环if key ord(q):break# 关闭窗口
cv2.destroyAllWindows() 窗口会显示读取的图像然后等待键盘输入。如果按下的是 “q” 键程序将退出循环并关闭窗口。如果按下其他键则会继续等待键盘输入。这样就实现了交互式地显示图像。 1.2.4 destroyWindow函数
cv2.destroyWindow( winname #winname 是窗口的名称。1.2.5 destroyAllWindows cv2.destroyAllWindows()#用来释放销毁所有窗口1.3 保存图像 cv2.imwrite()
retval cv2.imwrite( filename, img[, params] )retval 是返回值。如果保存成功则返回 True如果保存不成功则返回 False。
filename 是要保存的目标文件的完整路径名包含文件扩展名。
img 是被保存的图像。
params 是保存类型参数是可选的
import cv2# 读取图像
image cv2.imread(image.jpg)# 保存图像
retval cv2.imwrite(saved_image.jpg, image)# 判断是否保存成功
if retval:print(图像保存成功)
else:print(图像保存失败) 保存灰度图 对比一下先
plt.imshow(img,cmapplt.cm.gray) 为了直观用Pycharm