问题:我得到一张图片,然后将其转换成单通道,并将其分块,每块的值从1,2,3开始递增。(也就是现在有H×M的网格,网格现在已经被分块,不同的块中的值一样),请问如何是否有方法能够得到每块的边界顶点?
以下的图是进行分块后又将其转换成RGB三通道图像进行展示。
不知道python是否有实现这个功能的包呢?
问题:我得到一张图片,然后将其转换成单通道,并将其分块,每块的值从1,2,3开始递增。(也就是现在有H×M的网格,网格现在已经被分块,不同的块中的值一样),请问如何是否有方法能够得到每块的边界顶点?
以下的图是进行分块后又将其转换成RGB三通道图像进行展示。
不知道python是否有实现这个功能的包呢?
Python中没有直接获取图像分块边界顶点的内置方法。但是,你可以使用一些图像处理库,如OpenCV或PIL,来帮助你实现这个目标。
一种可能的方法是,首先使用图像处理库找到图像的边缘,然后根据分块的尺寸计算出每个块的边界顶点。
以下是一个使用OpenCV找到图像边缘的简单示例:
import cv2
import numpy as np
# 读取图像
image = cv2.imread('image.png', cv2.IMREAD_GRAYSCALE)
# 二值化处理
_, binary = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)
# 找到边缘
edges = cv2.Canny(binary, 50, 150)
# 找到边界顶点
# 在这个例子中,我们只是简单地找到边缘图像中的最大和最小坐标
min_x, min_y = np.min(edges, axis=(0,1))
max_x, max_y = np.max(edges, axis=(0,1))
print('Min X:', min_x)
print('Min Y:', min_y)
print('Max X:', max_x)
print('Max Y:', max_y)
请注意,这个示例假设你的图像是灰度图像,并且你已经将其转换为二值图像。如果你的图像是彩色图像,你可能需要首先将其转换为灰度图像,然后再进行二值化处理。此外,这个示例也没有考虑你的分块大小,你需要根据你的分块大小来调整计算边界顶点的方法。
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决