热搜:前端 nest neovim nvim

Python图像处理(一)python_opencv基本使用

lxf2023-05-06 00:43:25

我正在参加「编程·启航计划」

Python图像处理使用到的库是opencv-python。

安装库命令:

pip install opencv-python

 

我是在windows上做测试,使用的是Anaconda来安装,这就比较简单了,图形化界面操作。具体使用请移步《Python(三)开源的Python包管理器 anaconda——window安装》

 

我这里也只是简单的使用opencv的一些功能。

具体更多详细的功能请参照opencv中文文档:woshicver.com/

这部分文档是由英文翻译成中文的,可能有偏差,谨慎阅读。

 

也放一下opencv的官方文档吧,谷歌翻译的还不如上边的中文文档。翻译的结果那都不是人话。

docs.opencv.org/4.1.2/d6/d0…

 

一:使用opencv读取图片

# 引入 opencv模块
import cv2 as cv

# 读取图片
img = cv.imread('tu.jpg')

# 展示图片
cv.imshow('tu.jpg',img)

 

运行程序,结果如下图所示:

Python图像处理(一)python_opencv基本使用

 

二:将图片进行灰度转换

# 引入 opencv模块
import cv2 as cv

# 将图片进行灰度转换
gray_img = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
cv.imshow('gray_img',gray_img)

Python图像处理(一)python_opencv基本使用

 

三:获取原图片尺寸:

print(gray_img.shape)

输出:

(1080, 1920, 3)

图片高为1080,宽为1920.

 

四:图片尺寸缩放

图片缩放这里要着重的说一下,我也是初学,可能是我没有找到,参数中必须同时设置宽高才可以,不能想css中那样,设置宽高其中一个值,而让另一个值根据比例缩放,不知道是我没有找到对应的写法,还是就没有这个功能。我这里缩放使用的还是根据其原始比例来设置缩放:

# 引入 opencv模块
import cv2 as cv

# 读取图片
img = cv.imread('tu.jpg')

# 展示图片
cv.imshow('tu.jpg',img)

# 图片尺寸缩放
resize_img = cv.resize(img,dsize=(1366,768))
cv.imshow('resize_img',resize_img)

运行程序,如下图所示:

Python图像处理(一)python_opencv基本使用

 

五:绘制矩形

# 引入 opencv模块
import cv2 as cv

# 读取图片
img = cv.imread('tu.jpg')

# 展示图片
cv.imshow('tu.jpg',img)

# 绘制矩形
x, y, w, h = 100100100100
# 注意传递参数个数
(图片对象,左上角坐标,右下角坐标,绘制线颜色,线宽度)
cv.rectangle(img, (x, y), (x+w, y+h), color=(02550), thickness=3)
cv.imshow('resize_img', img)

运行程序,如下图所示:

Python图像处理(一)python_opencv基本使用

 

六:绘制圆形

# 绘制圆
x, y, z = 500500300
#(图片对象,圆心坐标,半径,绘制线颜色,线宽度)
cv.circle(img,center=(x,y),radius=z,color=(0,0,255),thickness=3)
cv.imshow('resize_img', img)

运行程序,如下图所示:

Python图像处理(一)python_opencv基本使用

 

最后,放一下测试使用全部代码:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time    : 2022/3/22 19:15
# @Author  : stone
# @Email   : 805795955@qq.com
# @File    : task.py
# @Software: PyCharm

# 引入 opencv模块
import cv2 as cv

# 读取图片
img = cv.imread('tu.jpg')

# 展示图片
cv.imshow('tu.jpg',img)

# 将图片进行灰度转换
gray_img = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
cv.imshow('gray_img',gray_img)

# 获取原图片尺寸:
print(img.shape)

# # 图片尺寸缩放
resize_img = cv.resize(img,dsize=(1366,768))
cv.imshow('resize_img',resize_img)

# 绘制矩形
x, y, w, h = 100100100100
# 注意传递参数个数
# (图片对象,左上角坐标,右下角坐标,绘制线颜色,线宽度)
cv.rectangle(img, (x, y), (x+w, y+h), color=(02550), thickness=3)
cv.imshow('resize_img', img)

# 绘制圆
x, y, z = 500500300
# (图片对象,圆心坐标,半径,绘制线颜色,线宽度)
cv.circle(img,center=(x,y),radius=z,color=(0,0,255),thickness=3)
cv.imshow('resize_img', img)

# 按esc 程序退出
while True:
    if 27 == cv.waitKey(0):
        cv.destroyAllWindows()
# num = cv.waitKey(0)
# print(num)

 

有好的建议,请在下方输入你的评论。

本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!