OpenCV对图像进行Otsu二值分割、Canny边缘检测、Harris角点检测实战(附源码)

简介: OpenCV对图像进行Otsu二值分割、Canny边缘检测、Harris角点检测实战(附源码)

需要源码和图片请点赞关注收藏后评论区留言私信~~~

图像分割是计算机视觉研究中的一个经典难题,已经成为图像理解领域关注的一个热点,图像分割是计算机将图像分割为多个区域的过程,分割图像的简单方法是使用阈值分割,它会产生两个区域,典型的大津阈值法通过最小化两个区域的加权方差实现图像分割

边缘检测也是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点,Canny边缘检测是从不同视觉对象中提取有用的结构信息并大大减少要处理的数据量的一种技术,目前已经广泛应用于各种计算机视觉系统

Harris角点是图像很重要的特征,对图形图像的理解和分析有很重要的作用,Harris角点检测是通过数学计算在图像上发现角点特征的一种算法,而且其具有旋转不变性

下面对图片分别应用上面三种算法

1:打开图像文件

我们查看原图像和灰度图

部分代码如下

import numpy as np 
import cv2 as cv
import matplotlib.pylab as plt 
img = cv.imread('images\lena.jpg',cv.IMREAD_COLOR) 
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
b,g,r = cv.split(img)
src = cv.merge([r, g, b])
plt.subplot(221)
plt.imshow(src)
plt.title('Original Image')
plt.xticks([])
plt.yticks([])
plt.subplot(222)
plt.imshowgry,cm = 'gray')
plt.title('Gray Image')
plt.xticks([]
plt.show()

2:图像的OTSU二值分割

可以看出大概分割为两个区域

 

ret, thresh = cv.threshold(gray, 0, 255,cv.THRESH_OTSU)
plt.imshow(thresh,cmap = 'gray')
plt.title('OSTU'), plt.xticks([]), plt.yticks([])
plt.show()

3:图像的Canny边缘检测

edges = cv.Cay(gray,100,200)
b,g,r = cv.spit(img)
src = cv.mer[r, g, b])
plt.subplot(221),plt.imshow(src)
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(222),plt.imshow(edges,cmap = 'gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])
plt.show()

4:图像的Harris Corner角点检测

gray = np.float32(gray)
dst = cv.cornerHarris(gray,2,3,0.04)
#result is dilated for marking the corners, not important
dst = cv.dilatdst,None)
# Threshold optimal value, it may vary depending on the image.
img[dst>0.01*dt.max()]=[0,0,255]
b,g,r = cvplit(img)
src = cv.merge([r, g, b])
plt.imshow(src)
plt.title('Harris Corner '), plt.xticks([]), plt.yticks([])

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
8月前
|
算法 计算机视觉
基于qt的opencv实时图像处理框架FastCvLearn实战
本文介绍了一个基于Qt的OpenCV实时图像处理框架FastCvLearn,通过手撕代码的方式详细讲解了如何实现实时人脸马赛克等功能,并提供了结果展示和基础知识回顾。
338 7
基于qt的opencv实时图像处理框架FastCvLearn实战
|
8月前
|
文字识别 计算机视觉 开发者
基于QT的OCR和opencv融合框架FastOCRLearn实战
本文介绍了在Qt环境下结合OpenCV库构建OCR识别系统的实战方法,通过FastOCRLearn项目,读者可以学习Tesseract OCR的编译配置和在Windows平台下的实践步骤,文章提供了技术资源链接,帮助开发者理解并实现OCR技术。
447 9
基于QT的OCR和opencv融合框架FastOCRLearn实战
|
7月前
|
计算机视觉
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
这篇文章详细介绍了OpenCV库中的图像二值化函数`cv2.threshold`,包括二值化的概念、常见的阈值类型、函数的参数说明以及通过代码实例展示了如何应用该函数进行图像二值化处理,并展示了运行结果。
2130 0
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
|
8月前
|
存储 计算机视觉
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制
本文介绍了使用OpenCV进行图像读取、显示和存储的基本操作,以及如何绘制直线、圆形、矩形和文本等几何图形的方法。
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制
|
7月前
|
机器学习/深度学习 算法 计算机视觉
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
233 7
|
8月前
|
计算机视觉
基于QT的opencv插件框架qtCvFrameLearn实战
这篇文章详细介绍了如何基于Qt框架开发一个名为qtCvFrameLearn的OpenCV插件,包括项目配置、插件加载、Qt与OpenCV图像转换,以及通过各个插件学习OpenCV函数的使用,如仿射变换、卡通效果、腐蚀、旋转和锐化等。
139 10
|
8月前
|
算法 计算机视觉
opencv图像形态学
图像形态学是一种基于数学形态学的图像处理技术,它主要用于分析和修改图像的形状和结构。
111 4
|
9月前
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
WK
|
9月前
|
编解码 计算机视觉 Python
如何在OpenCV中进行图像转换
在OpenCV中,图像转换涉及颜色空间变换、大小调整及类型转换等操作。常用函数如`cvtColor`可实现BGR到RGB、灰度图或HSV的转换;`resize`则用于调整图像分辨率。此外,通过`astype`或`convertScaleAbs`可改变图像数据类型。对于复杂的几何变换,如仿射或透视变换,则可利用`warpAffine`和`warpPerspective`函数实现。这些技术为图像处理提供了强大的工具。
WK
262 1
|
11月前
|
算法 计算机视觉
【Qt&OpenCV 图像的感兴趣区域ROI】
【Qt&OpenCV 图像的感兴趣区域ROI】
388 1