所有代码需要在安装了OpenCV库的Python环境中运行。

1 图像基础操作

import cv2 as cv
 
 img = cv.imread("./img/run.png", flags=cv.IMREAD_COLOR)
 print(img)
[[[255 255 255]
   [255 255 255]
   [255 255 255]
   ...
   [255 255 255]
   [255 255 255]
   [255 255 255]]
 
  [[255 255 255]
   [255 255 255]
   [255 255 255]
   ...
   [255 255 255]
   [255 255 255]
   [255 255 255]]
 
  [[255 255 255]
   [255 255 255]
   [255 255 255]
   ...
   [255 255 255]
   [255 255 255]
   [255 255 255]]
 
  ...
 
  [[255 255 255]
   [255 255 255]
   [255 255 255]
   ...
   [255 255 255]
   [255 255 255]
   [255 255 255]]
 
  [[255 255 255]
   [255 255 255]
   [255 255 255]
   ...
   [255 255 255]
   [255 255 255]
   [255 255 255]]
 
  [[255 255 255]
   [255 255 255]
   [255 255 255]
   ...
   [255 255 255]
   [255 255 255]
   [255 255 254]]]

输出结果就是图片每个像素点的rgb值。

使用了OpenCV库中的cv2模块,读取"run.png"图像文件,并将其存储在变量img。然后,使用print函数输出了img变量的值,即图像数据。

cv.imread()函数用于读取图像文件:

  • 第一个参数是图像文件的路径
  • 第二个参数是读取图像的标志,这里使用了cv.IMREAD_COLOR标志,表示读取彩色图像
  • 读取成功后,图像数据将被存储在img变量中,可使用cv.imshow()函数将图像显示
import cv2 as cv
 # 读取图像时以灰度模式加载,即将图像转换为灰度图像
 img = cv.imread("./img/run.png", flags=cv.IMREAD_GRAYSCALE)
 # 创建一个名为"myImg"的窗口,并将读取的图像显示在该窗口中
 # 第一个参数是窗口的名称,第二个参数是要显示的图像。
 cv.imshow("myImg", img)
 # 等待用户按下任意键。这个函数会暂停程序的执行,直到用户按下键盘上的任意键。
 cv.waitKey(0)
 # 关闭所有打开的窗口,释放内存资源。
 cv.destroyAllWindows()

这段代码使用OpenCV库加载一张图像并显示在窗口中。 首先,通过import cv2 as cv语句导入了OpenCV库,并将其命名为cv,以便在后续代码中使用。 然后,通过cv.imread()函数读取了一张图像文件。

这段代码的作用是加载图像并在窗口中显示,以便用户查看图像。

import cv2 as cv
 
 # img = cv.imread("./img/run.png", flags=cv.IMREAD_COLOR)
 img = cv.imread("./img/run.png", flags=cv.IMREAD_GRAYSCALE)
 # 第一个参数是图像文件的路径
 # 第二个参数是读取图像的标志,使用cv.IMREAD_GRAYSCALE标志表示读取灰度图像
 # 保存成功后,图像文件将被保存在指定的路径中
 cv.imwrite('./img/bg.jpg', img)

2 修改像素与色彩

import cv2 as cv
 import numpy
 
 img = numpy.zeros((200, 200), numpy.uint8)
 print(img)
 print(type(img))
 cv.imshow("img", img)
 cv.waitKey(0)
 cv.destroyAllWindows()

生产了一个小黑框:

轻松掌握图像处理技能,Python OpenCV库带你飞_数据

划一道白线:

import cv2 as cv
 import numpy
 
 img = numpy.zeros((200, 200), numpy.uint8)
 print(img)
 print(type(img))
 for i in range(200):
     img[100][i] = 255
 
 cv.imshow("img", img)
 cv.waitKey(0)
 cv.destroyAllWindows()

轻松掌握图像处理技能,Python OpenCV库带你飞_数据_02

为已有图片加红线:

轻松掌握图像处理技能,Python OpenCV库带你飞_OpenCV_03

3 修改图像 Region of Interest 指定区域

import cv2 as cv
 
 img = cv.imread("./img/run.png", flags=cv.IMREAD_COLOR)
 roi = img[100:300, 100:300]
 cv.imshow("img", roi)
 
 
 cv.waitKey(0)
 cv.destroyAllWindows()

这段代码使用了OpenCV库中的cv2模块,读取了一张名为"run.png"的彩色图像文件,并将其存储在变量img中。然后,使用切片操作将img变量中的图像数据按照[100:300, 100:300]的范围进行切片,即从第100行到第300行,第100列到第300列的区域。最后,使用cv.imshow()函数将切片后的图像数据显示出来。

具体来说,cv.imread()函数用于读取图像文件,第一个参数是图像文件的路径,第二个参数是读取图像的标志,这里使用了cv.IMREAD_COLOR标志表示读取彩色图像。读取成功后,图像数据将被存储在img变量中,可以使用cv.imshow()函数将图像显示出来。

cv.imshow()函数用于将图像数据显示出来,第一个参数是窗口的名称,第二个参数是要显示的图像数据。显示成功后,图像将被显示在指定的窗口中。

cv.waitKey()函数用于等待用户按下任意键,参数是等待的毫秒数,这里设置为0表示无限等待。cv.destroyAllWindows()函数用于关闭所有显示窗口。

需要注意的是,这段代码需要在安装了OpenCV库的Python环境中运行。

img = cv.imread("./img/run.png", flags=cv.IMREAD_COLOR)
 img[100:300, 100:300] = [255, 255, 255]
 cv.imshow("img", img)

这段代码使用了OpenCV库中的cv2模块,读取了一张名为"run.png"的彩色图像文件,并将其存储在变量img中。然后,使用切片操作将img变量中的图像数据按照[100:300, 100:300]的范围进行切片,即从第100行到第300行,第100列到第300列的区域。最后,使用赋值操作将切片后的图像数据赋值为白色,即将每个像素的RGB值都设置为255,然后使用cv.imshow()函数将修改后的图像数据显示出来。

具体来说,cv.imread()函数用于读取图像文件,第一个参数是图像文件的路径,第二个参数是读取图像的标志,这里使用了cv.IMREAD_COLOR标志表示读取彩色图像。读取成功后,图像数据将被存储在img变量中,可以使用cv.imshow()函数将图像显示出来。

cv.imshow()函数用于将图像数据显示出来,第一个参数是窗口的名称,第二个参数是要显示的图像数据。显示成功后,图像将被显示在指定的窗口中。

需要注意的是,使用赋值操作修改图像数据时,需要确保修改的是原图像数据的副本,而不是原始图像数据本身。在这里,可以使用切片操作来创建副本,然后对副本进行修改。