OpenCV技术应用(5)— 将一幅图像均分成4幅图像

**前言:****Hello大家好,我是小哥谈。**本节课就手把手教你如何将一幅图像均分成4幅图像,希望大家学习之后能够有所收获~!🌈

目录

🚀1.技术介绍

🚀2.实现代码

🚀1.技术介绍

如果将下图所示目标图像均分为4幅图像,会有多少种解决办法呢?先来了解下其中的3种简单办法:一是水平方向上,将目标图像对折、再对折;二是垂直方向上,将目标图像对折、再对折;三是先将目标图像在水平方向上对折,再将其在垂直方向上对折。

本案例就以第3种解决办法为例,使用OpenCV将下图所示的目标图像均分为4幅图像。


🚀2.实现代码

为了实现将目标图像均分为4幅图像,要先明确目标图像的行像素和列像素,即获取目标图像的属性shape。关键代码如下所示:

python 复制代码
rows, columns, channels = image.shape # 获取图像的行像素、列像素和通道数

得到目标图像的行像素和列像素后,使用"切片"的相关知识表示这4幅图像的所在区域。需要注意的是,如果目标图像在水平方向上含有columns个像素,在垂直方向上含有rows个像素,但是,目标图像左上角像素的坐标是(0, 0),右下角像素的坐标是((rows-1), (columns-1))。关键代码如下所示:

python 复制代码
# 图像要被均分成2行2列的4幅图像
for i in range(2): # 表示"行"
    for j in range(2): # 表示"列"
        # 使用"切片",分别得到4幅图像中的每一幅图像
        img_roi = image[(i * int(rows/2)):((i + 1) * int(rows/2) -1),
                  (j * int(columns/2)):((j + 1) * int(columns/2) -1)]

具体的实现代码如下所示:

python 复制代码
import cv2

image = cv2.imread(r"C:\Users\Lenovo\PycharmProjects\yolov5-master1\data\images\1.jpg") # 读取图像地址
rows, columns, channels = image.shape # 获取图像的行像素、列像素和通道数
cv2.imshow("1", image) # 创建一个名称为ice的窗口显示读取到的图像
image_name = 1 # 使用数字命名将要被保存的图像
# 图像要被均分成2行2列的4幅图像
for i in range(2): # 表示"行"
    for j in range(2): # 表示"列"
        # 使用"切片",分别得到4幅图像中的每一幅图像
        img_roi = image[(i * int(rows/2)):((i + 1) * int(rows/2) -1),
                  (j * int(columns/2)):((j + 1) * int(columns/2) -1)]
        cv2.imshow(str(i) + "-" + str(j), img_roi) # 窗口显示4幅图像中的每一幅图像
        cv2.imwrite("images/" + str(image_name) + ".jpg", img_roi) # 保存4幅图像中的每一幅图像
        image_name = image_name + 1 # 用于命名将要被保存的图像的数字执行自加操作
cv2.waitKey() # 按下键盘上的任意按键后
cv2.destroyAllWindows() # 销毁显示图像的所有窗口

运行结果如下所示:


相关推荐
小程故事多_807 小时前
OpenClaw工具引擎架构全解析,AI Agent的“双手”如何落地实操
人工智能·架构·aigc·ai编程·openclaw
qq_452396237 小时前
【AI 架构师】第十篇:Agent 工业化部署 —— 从 FastAPI 到云端全链路监控
网络·人工智能·ai·fastapi
前端摸鱼匠7 小时前
【AI大模型春招面试题11】什么是模型的“涌现能力”(Emergent Ability)?出现条件是什么?
人工智能·算法·ai·自然语言处理·面试·职场和发展
新缸中之脑7 小时前
如何合法地逆向SynthID
人工智能
剑穗挂着新流苏3128 小时前
115_PyTorch 实战:从零搭建 CIFAR-10 完整训练与测试流水线
人工智能·pytorch·深度学习·神经网络
Veggie268 小时前
【Java深度学习】PyTorch On Java 系列课程 第八章 17 :模型评估【AI Infra 3.0】[PyTorch Java 硕士研一课程]
java·人工智能·深度学习
链上杯子9 小时前
《2026 LangChain零基础入门:用AI应用框架快速搭建智能助手》第8课(完结篇):小项目实战 + 部署 —— 构建网页版个人知识库 AI 助手
人工智能·langchain
东方不败之鸭梨的测试笔记9 小时前
AI生成测试用例方案
人工智能·测试用例
笨手笨脚の10 小时前
AI 基础概念
人工智能·大模型·prompt·agent·tool
飞睿科技10 小时前
解析 ESP-AirPuff 泡芙一号的 ESP32-P4 大模型 AI 智能体方案
人工智能