使用 OpenCV 和 Python 处理图像轮廓并离散化点集
相信柔性传感器阵列领域的研究者们都看过如下的图(侵删):
仿真这种云图只需要直接提取面就可以,但是实际我们制作的阵列只有离散点,甚至是不规则位置(非栅格、密度小)的几个器件,要怎么绘制成如上图所示呢?像我这种只会简单规则云图绘制的小白就是没办法搞的,,找了很多博客也没有发现该怎么绘制(肯定有,只是我没花足够的功夫找,检讨),因此,摸索了以下通过python脚本形式去绘制的方法(借助gpt),先放绘制效果:
在本篇博客中,将简单讲解如何使用 Python 和 OpenCV 从图像中提取轮廓并将这些轮廓离散化成点集。接着进一步通过插值技术生成热力图。
1. 读取和预处理图像
代码:
import cv2
import numpy as np
def get_discrete_points(image_path, n=1, spacing=10):
# 读取图像,确保是灰度图
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
# 将图像二值化:黑色轮廓为 0,背景为 255
_, binary_image = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY_INV)
解读:
首先读取图片,将其转换为灰度模式 (cv2.IMREAD_GRAYSCALE
),注意这里需要简单调一下阈值保证二值化后有清晰轮廓。随后,我们通过 cv2.threshold()
将图像进行二值化处理,确保黑色轮廓部分为 0
,背景为 255
。
2. 提取图像轮廓
代码:
# 使用 cv2.RETR_TREE 查找所有轮廓,包括内部轮廓
contours, _ = cv2.findContours(binary_image, cv2.RETR_TREE, cv2.
标签:鞋垫,image,cv2,力图,离散,图像,轮廓,绘制
From: https://blog.csdn.net/lqwh4666/article/details/142651067