基于2023年网络赛赛题了解OpenCv

一、OpenCv图像读取与显示

1.图像的读取与显示

cv.imread()

图像读取,第一个参数是照片的位置一般是完整路径,第二个参数是指定图片输出的样式

  • cv.IMREAD_COLOR: 加载彩色图像。任何图像的透明度都会被忽视。(默认模式)。
  • cv.IMREAD_GRAYSCALE:以灰度模式加载图像
  • cv.IMREAD_UNCHANGED:加载图像,包括alpha通道

cv.imshow()

使用 "cv.imshow"将读入进去的图片展示出来,照片随窗口大小改变。第一个参数是窗口名称,是一个字符创,第二个参数是我们展示的对象

cv2.wait()

cv2.wait是OpenCV库中的一个函数,用于等待用户按键输入。它的参数是一个整数,表示等待键盘输入的时间(以毫秒为单位)。如果在这个时间内用户按下了任意键,函数将返回按下的键的ASCII码;如果在指定的时间内没有按键输入,函数将返回-1。输入0表示窗口一直打开,知道按下任意键。

cv2.destoryAllWindows():是 OpenCV 库中的一个函数,用于关闭所有由 cv2.imshow(), cv2.namedWindow(), cv2.createWindow() 等函数创建的窗口

二、图片颜色的转变

图片灰度

1.在读取图片的时候可以直接将图片进行灰度

python 复制代码
import cv2

img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)

2.调用cvtColor函数将图片进行灰度

python 复制代码
import cv2

img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

图像尺寸改变

cv.resize()

第一个参数是图片名字,第二个参数是想要调整的长和宽

python 复制代码
import cv2

# 读取图像
image = cv2.imread('input_image.jpg')

# 设置新的图像尺寸
new_width = 500
new_height = 300

# 调整图像尺寸
resized_image = cv2.resize(image, (new_width, new_height))

# 显示原始图像和调整后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Resized Image', resized_image)

# 等待按键关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

图片裁剪以裁剪左边保留右边图像为例

python 复制代码
#"D:\abcd\task3.jpg"
import cv2

# 读取图像
image = cv2.imread("D:/abcd/task3.jpg")

# 获取图像的宽度和高度
height, width = image.shape[:2]

# 设置裁剪区域的左上角坐标和宽高
x = width // 2  # 将图像分为左右两部分,取中间位置作为分割点
y = 0
width = width - x  # 裁剪宽度为原图宽度减去左侧部分的宽度
height = height

# 裁剪图像
cropped_image = image[y:y+height, x:x+width]

# 显示原始图像和裁剪后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Cropped Image', cropped_image)

# 等待按键关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

# 保存裁剪后的图像
cv2.imwrite('output_image.jpg', cropped_image)

OpenCv的模版匹配

模版匹配就是在大图像中找小图像然后在大图像中将小图像给圈出来

基本原理就是通过滑动模板图像(template)在源图像(source)上,计算每个位置的匹配得分,从而找到最匹配的位置。

在opencv中模版匹配一般是由matchTemplate来实现的

python 复制代码
result = cv2.matchTemplate(image, template, method)
  • image: 源图像(在其中搜索匹配区域)。
  • template: 模板图像(需要匹配的图像部分)。
  • method: 匹配方法,常用的方法有:
    • cv2.TM_SQDIFF: 平方差匹配。
    • cv2.TM_SQDIFF_NORMED: 归一化平方差匹配。
    • cv2.TM_CCORR: 相关匹配。
    • cv2.TM_CCORR_NORMED: 归一化相关匹配。
    • cv2.TM_CCOEFF: 相关系数匹配。
    • cv2.TM_CCOEFF_NORMED: 归一化相关系数匹配。
python 复制代码
# 导入相关库
import cv2
import numpy as np

# 读取原始图像和模版图像
image = cv2.imread("D:/abcd/image.png", cv2.IMREAD_COLOR)
template = cv2.imread("D:/abcd/template.png", cv2.IMREAD_COLOR)

# 用cv2.matchTemplate进行模版匹配
result = cv2.matchTemplate(image, template, cv2.TM_CCOEFF_NORMED)

# 获取最佳的匹配位置
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
top_left = max_loc
bottom_right = (top_left[0] + template.shape[1], top_left[1] + template.shape[0])

# 在原始图片上绘制矩形框来标记匹配的位置,(0,255,0)是矩形框的颜色
cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2)

# 显示结果并保持
cv2.imshow('Matched Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite('result.jpg', image)

参考文献:OpenCV 的模板匹配_opencv 模板匹配-CSDN博客

相关推荐
Guofu_Liao40 分钟前
大语言模型---LoRA简介;LoRA的优势;LoRA训练步骤;总结
人工智能·语言模型·自然语言处理·矩阵·llama
ZHOU_WUYI4 小时前
3.langchain中的prompt模板 (few shot examples in chat models)
人工智能·langchain·prompt
如若1235 小时前
主要用于图像的颜色提取、替换以及区域修改
人工智能·opencv·计算机视觉
老艾的AI世界5 小时前
AI翻唱神器,一键用你喜欢的歌手翻唱他人的曲目(附下载链接)
人工智能·深度学习·神经网络·机器学习·ai·ai翻唱·ai唱歌·ai歌曲
DK221515 小时前
机器学习系列----关联分析
人工智能·机器学习
Robot2515 小时前
Figure 02迎重大升级!!人形机器人独角兽[Figure AI]商业化加速
人工智能·机器人·微信公众平台
浊酒南街6 小时前
Statsmodels之OLS回归
人工智能·数据挖掘·回归
畅联云平台6 小时前
美畅物联丨智能分析,安全管控:视频汇聚平台助力智慧工地建设
人工智能·物联网
加密新世界7 小时前
优化 Solana 程序
人工智能·算法·计算机视觉
hunteritself7 小时前
ChatGPT高级语音模式正在向Web网页端推出!
人工智能·gpt·chatgpt·openai·语音识别