将图片划分为网格区域并识别坐标点所属网格
创作时间:
作者:
@小白创作中心
将图片划分为网格区域并识别坐标点所属网格
引用
CSDN
1.
https://blog.csdn.net/weixin_44043810/article/details/146321072
将图片划分为几个网格区域,根据所给点位坐标,如何识别出所给的坐标在当前图片中所在的网格区域(适用于简单图形)。
安装依赖
需要安装OpenCV库,可以使用以下命令进行安装:
pip install opencv-python
Python代码实现
import cv2
import numpy as np
def divide_image_into_grid(image_path, rows, cols):
# 读取图片
image = cv2.imread(image_path)
if image is None:
print("无法读取图片,请检查图片路径。")
return
height, width, _ = image.shape
print(f"图片宽度: {width}, 图片高度: {height}")
# 计算每个网格的宽度和高度
grid_width = width // cols
grid_height = height // rows
print(f"网格宽度: {grid_width}, 网格高度: {grid_height}")
# 绘制网格线
for i in range(1, rows):
cv2.line(image, (0, i * grid_height), (width, i * grid_height), (0, 255, 0), 2)
for j in range(1, cols):
cv2.line(image, (j * grid_width, 0), (j * grid_width, height), (0, 255, 0), 2)
# 显示图片
cv2.imshow('Image with Grid', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
return grid_width, grid_height
def get_grid_region(x, y, grid_width, grid_height, rows, cols):
"""
该函数用于识别特定坐标 (x, y) 所在的网格区域
:param x: 坐标的 x 值
:param y: 坐标的 y 值
:param grid_width: 每个网格的宽度
:param grid_height: 每个网格的高度
:param rows: 网格的行数
:param cols: 网格的列数
:return: 坐标所在网格的行和列元组 (row, col),若坐标无效则返回 None
"""
if x < 0 or y < 0 or x >= grid_width * cols or y >= grid_height * rows:
print("输入的坐标超出图片范围,无效。")
return None
col = min(x // grid_width, cols - 1)
row = min(y // grid_height, rows - 1)
print(f"计算得到的列索引: {col}, 行索引: {row}")
return (row, col)
# 示例调用
image_path = 'soccer.jpeg' # 请替换为你的图片路径
rows = 3
cols = 4
grid_width, grid_height = divide_image_into_grid(image_path, rows, cols)
# 假设要识别的坐标
x = 800
y = 756
print(f"要识别的坐标: ({x}, {y})")
grid = get_grid_region(x, y, grid_width, grid_height, rows, cols)
if grid:
print(f"坐标 ({x}, {y}) 所在的网格区域:行 {grid[0]}, 列 {grid[1]}")
划分效果
热门推荐
科普好文,一文告诉你什么是汽车平台
贝都因人:沙漠中的游牧民族
贝都因人:阿拉伯世界独特的游牧民族
老年人补充维生素B12和叶酸的健康益处
肠系膜动脉栓塞怎么预防
MySQL数据库迁移完整指南:工具选择、步骤详解与最佳实践
白蛋白和球蛋白,傻傻分不清(下)
如何通过技术分析捕捉连续涨停的股票?这些分析方法有哪些科学依据和局限性?
玄武门之变:权力更迭的血腥代价
洗牙的正确频率是多少?
经前综合征,可以通过饮食改善嘛?
预防燃烧室积碳的措施有哪些?
历史上的东吴为什么被称之为鼠辈?对此你怎么看?
刑事案件血液鉴定技术及其法律适用
改善饮食方式,维护血压健康
《哪吒2》霸气登顶!即将于北美上映,导演饺子已在构思新作品
组织结构内部有序型:如何构建高效有序的企业组织
失物有:现金、手机、身份证……请相互转告认领!
智能电批使用指南:从准备到监控的全流程详解
中西医结合治疗颈椎病
团结友爱的格言
如何通过院子别墅设计提升居住品质与生活体验?
如何用示波器测量信号周期和幅度以保证测量精度
如何识别后封机?新买的手机这样操作(苹果序列号查询)万无一失
机油滤芯多久更换一次合适?
核桃是血管清道夫?研究发现:核桃让血管更健康,怎么吃才正确?
苹果高产不是梦:科学方法助力果农实现丰收
192.168.0.1登录路由器改密码详细步骤
河北邢台八大特色美食
听诊器的作用与功效