1-21 角点检测 opencv树莓派4B 入门系列笔记

目录

一、提前准备

二、代码详解

三、运行现象

四、完整工程贴出


一、提前准备

1、树莓派4B 及 64位系统

2、提前安装opencv库 以及 numpy库

3、保存一张图片

二、代码详解

python 复制代码
import cv2

img = cv2.imread('jihe.jpg')
# 角点检测需要转换为灰度图
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 角点检测  
dst = cv2.cornerHarris(img_gray, 4, 3, 0.04)
# 每个点得到的结果值大于最大角点值的0.01倍,即认为该点为角点,并用[0, 0, 255]红色绘制出
img[dst > 0.01 * dst.max()] = [0, 0, 255]
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows() 

cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

这个函数用于转换图像的颜色空间。在这里,它将原始图像(通常是BGR格式)转换为灰度图。灰度图只有一个颜色通道,这在许多图像处理任务中是必要的,因为它们不需要处理颜色信息。

cv2.cornerHarris(img_gray, 4, 3, 0.04)

这是Harris角点检测算法的实现。它接受四个参数:

img_gray:输入的灰度图像。

0.04:Harris检测器的自由参数,用于调整角点响应函数的灵敏度。这个函数会返回一个与输入图像大小相同的响应图,图中的每个像素值表示该位置成为角点的可能性。

3:Sobel算子的孔径大小,用于计算图像的梯度。

4:角点检测的区块大小,即每个角点周围的邻域大小。

img[dst > 0.01 * dst.max()] = [0, 0, 255]

这行代码是在响应图dst上进行阈值操作,以确定角点的位置。它将响应图中大于其最大值的0.01倍的像素点设置为红色(BGR格式中的[0, 0, 255])。

这意味着只有响应值足够高的点才会被认为是角点,并在原始图像上用红色标记。

三、运行现象

四、完整工程贴出

持续更新中......

相关推荐
周杰伦_Jay3 分钟前
【智能体(Agent)技术深度解析】从架构到实现细节,核心是实现“感知环境→处理信息→决策行动→影响环境”的闭环
人工智能·机器学习·微服务·架构·golang·数据挖掘
包饭厅咸鱼15 分钟前
PaddleOCR----制作数据集,模型训练,验证 QT部署(未完成)
算法
无敌最俊朗@28 分钟前
C++ 并发与同步速查笔记(整理版)
开发语言·c++·算法
王哈哈^_^30 分钟前
【完整源码+数据集】课堂行为数据集,yolo课堂行为检测数据集 2090 张,学生课堂行为识别数据集,目标检测课堂行为识别系统实战教程
人工智能·算法·yolo·目标检测·计算机视觉·视觉检测·毕业设计
夏鹏今天学习了吗1 小时前
【LeetCode热题100(66/100)】寻找两个正序数组的中位数
算法·leetcode·职场和发展
Elastic 中国社区官方博客1 小时前
Observability:适用于 PHP 的 OpenTelemetry:EDOT PHP 加入 OpenTelemetry 项目
大数据·开发语言·人工智能·elasticsearch·搜索引擎·全文检索·php
墨染点香1 小时前
LeetCode 刷题【151. 反转字符串中的单词】
算法·leetcode·职场和发展
神仙别闹1 小时前
基于 C++和 Python 实现计算机视觉
c++·python·计算机视觉
ytttr8731 小时前
Landweber迭代算法用于一维、二维图像重建
人工智能·算法·机器学习
feifeigo1231 小时前
Matlab编写压缩感知重建算法集
人工智能·算法·matlab