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([])

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

相关文章
|
5天前
|
计算机视觉 iOS开发 C++
【OpenCV】在MacOS上源码编译OpenCV
【7月更文挑战第9天】在MacOS上源码编译OpenCV需分步进行: 1. 准备工作: 安装Xcode, Command Line Tools及依赖如CMake, Homebrew. 2. 获取OpenCV源码: 从官网下载并解压所需版本. 3. 编译OpenCV. 4. 安装OpenCV: 编译后使用`sudo make install`进行安装. 5. 验证安装: 编写简单C++程序测试OpenCV功能, 如读取并显示图片.
|
13天前
|
Ubuntu 编译器 计算机视觉
Ubuntu系统下编译OpenCV4.8源码
在Ubuntu上源码安装OpenCV 4.8分为三步:1) 下载源码包,使用`wget`命令;2) 安装依赖,如`g++`, `cmake`, `make`等;3) 创建编译目录,运行`cmake`配置,接着`make`编译,最后`sudo make install`安装。安装完成后,通过编写和运行一个简单的OpenCV C++程序来验证环境配置正确性。
46 10
|
16天前
|
机器学习/深度学习 传感器 算法
OpenCV4工业缺陷检测的六种方法
OpenCV4工业缺陷检测的六种方法
|
1月前
|
存储 编解码 算法
【Qt&OpenCV 检测图像中的线/圆/轮廓 HoughLinesP/HoughCircles/findContours&drawContours】
【Qt&OpenCV 检测图像中的线/圆/轮廓 HoughLinesP/HoughCircles/findContours&drawContours】
39 0
|
1月前
|
算法 计算机视觉
【Qt&OpenCV 图像边缘检测 Sobel/Laplace/Canny】
【Qt&OpenCV 图像边缘检测 Sobel/Laplace/Canny】
18 0
|
1月前
|
机器学习/深度学习 算法 数据库
【功能超全】基于OpenCV车牌识别停车场管理系统软件开发【含python源码+PyqtUI界面+功能详解】-车牌识别python 深度学习实战项目
【功能超全】基于OpenCV车牌识别停车场管理系统软件开发【含python源码+PyqtUI界面+功能详解】-车牌识别python 深度学习实战项目
|
14天前
|
机器学习/深度学习 XML 计算机视觉
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
|
1月前
|
算法 计算机视觉
【Qt&OpenCV 图像的感兴趣区域ROI】
【Qt&OpenCV 图像的感兴趣区域ROI】
34 1
|
1月前
|
运维 算法 计算机视觉
【Qt&OpenCV 图像的模板匹配 matchTemplate/minMaxLoc】
【Qt&OpenCV 图像的模板匹配 matchTemplate/minMaxLoc】
23 1
|
1月前
|
计算机视觉
OpenCV中图像算术操作与逻辑操作
OpenCV中图像算术操作与逻辑操作
40 1