答辩之前回答的基于阈值,基于区域等都说是错误的,后附图片是我回答的内容,麻烦给出正确答案
你们老师问的是什么?如果真的问的是图像分割的分类,你这么回答就算不是全面的(本身就挺全面的了,主要少了深度学习方面的分割方法),也不至于被喷。如果你毕设有涉及到AI方面的,那我觉得你们老师要问题应该是AI方面的图像分割分类,包括实例分割,语义分割和全景分割这三种深度学习方面的图像分割方案,而不是基于传统数字图像处理和机器学习方面的分割。
就单单基于阈值而言,是传统图像处理里面很常用的分割方法,使用阈值二值化之后就可以将目标分割出来,所以如果只是单独回答你上面的那些,不涉及到AI方面的,我觉得你这么说也没问题,不至于被喷才对。
首先,阀值是对的,我们团队使用过自适应阈值的量子图像分割算法通过Qiskit扩展在IBM Quantum Experience平台上对其进行模拟,并且这部分在国外文献上是有明确提到过
你如果英文ok的话可以参考:
常见的还有聚类图像分割:曾聚类、分裂聚类这些
区域没有听过这种分法,我觉得是国内学者曲解了这部分概念,我在国外看到过SCA(算法副余弦),目的可以实现集群中心的初始化和向局部最佳收敛。
这部分对于刚入学的伙伴不太友好,建议关注国外文献,阅读下这篇:https://cseweb.ucsd.edu/~ysaraf/projects/thesis.pdf
AI模型算法:
1.全卷积网络(FCN)
2.谷歌扩张模型(Google’s Expansion Model)
3.空洞卷积网络(DCNN)
4.深度监督网络(DSN)
5.多尺度卷积网络(MCNN)
6.光流卷积神经网络(FlowNet)
7.级联卷积神经网络(CascadeNet)
8.基于全局与局部注意力机制(GAN)
传统算法:
1.K mean聚类
2.基于阈值分割算法(OTSU算法、迭代算法)
3.基于前景与背景建模分割算法(高斯混合模型等)
4.区域分割(分水岭算法)
5.边缘检测
6.图像分割相关系数聚类算法
7.基于小波变换的图像分割算法
8.文氏分形压缩分割算法
引用chatGPT作答,图像分割是指将一幅图像划分成若干个子区域,每个子区域内的像素具有相似的某种特性,例如颜色、纹理、亮度等。根据不同的算法思想和方法,图像分割算法可以分为以下几类:
1.基于阈值的分割算法:将像素值与一个或多个阈值进行比较,根据阈值判断像素所属的区域。这种算法简单易懂,但对于噪声较多、物体间差异较小的图像分割效果不佳。
2.基于边缘的分割算法:先检测出图像中的边缘,然后将边缘划分为不同的区域。这种算法对于具有明显边缘的图像分割效果较好,但对于复杂图像边缘检测难度较大。
3.基于区域的分割算法:首先将图像划分为若干个连通区域,然后通过合并或分裂这些区域来达到图像分割的目的。这种算法对于复杂图像有很好的适应性,但算法复杂度较高。
4.基于图论的分割算法:将图像看作一个图,通过最小生成树、最大流等图论算法来实现图像分割。这种算法适用于较为复杂的图像分割,但计算复杂度较高。
5.基于聚类的分割算法:将像素点聚类成若干个簇,同一簇内的像素具有相似的特征,不同簇间像素差异较大。这种算法对于具有明显的聚类特征的图像分割效果较好,但对于复杂图像聚类难度较大。
6.基于深度学习的分割算法:利用深度学习模型来实现图像分割,包括全卷积网络、U-Net、SegNet等。这种算法在处理大规模、复杂的图像分割问题时具有很好的效果,但需要大量的训练数据和计算资源。
该回答引用ChatGPTpython
import cv2
# 读取图像
img = cv2.imread("example.jpg")
# 将彩色图像转为灰度图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 全局阈值分割
ret, thresh_img = cv2.threshold(gray_img, 127, 255, cv2.THRESH_BINARY)
# 显示结果
cv2.imshow("Original Image", img)
cv2.imshow("Threshold Image", thresh_img)
cv2.waitKey(0)
python
import cv2
# 读取图像
img = cv2.imread("example.jpg")
# 转为灰度图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 区域生长分割
seed_pt = (50, 50) # 种子像素点
new_val = 255 # 新区域像素值
mask = cv2.imread("example_mask.bmp", cv2.IMREAD_GRAYSCALE) # 区域生长限制掩膜
connected_img = cv2.floodFill(gray_img, mask, seed_pt, new_val)
# 显示结果
cv2.imshow("Original Image", gray_img)
cv2.imshow("Segmented Image", connected_img)
cv2.waitKey(0)
1基于阈值的分割
基于阈值的分割是最简单和最常见的图像分割方法之一。它通过选择一个或多个阈值来将图像分成两个或多个区域。对于灰度图像,阈值可以通过手动选择或自动选择算法来确定。常用的自动阈值算法有大津算法、谷底阈值算法、基于直方图形态的算法等。
2基于区域的分割
基于区域的分割是一种将图像分成若干区域的方法。该方法的基本思想是将图像中相似的像素组合成区域。这些区域可以表示物体、背景或边缘等。区域生长、分裂合并、分水岭等算法都属于基于区域的分割方法。
3基于边缘的分割
基于边缘的分割方法是一种基于图像的边缘信息将图像分割成不同部分的技术。在该方法中,边缘是图像中明显的转折点或过渡区域。常用的基于边缘的分割算法包括Canny算法、Sobel算法、Laplacian算法等。
4基于能量的分割
基于能量的分割方法是将图像分成若干区域的另一种方法。它的基本思想是选择一组能量函数,这些函数可以表示图像区域的不同性质。最小割、最大流、GrabCut等算法都属于基于能量的分割方法。
5基于聚类的图像分割算法
基于聚类的图像分割算法是将像素分成不同的类别,每个类别的像素具有相似的特征。聚类分析的目标是将相似的像素聚集成类别,并将不同的类别分开。最常用的聚类算法是K-means聚类算法。在该算法中,每个像素被认为是一维向量,聚类是在向量空间中完成的。该算法首先随机选择一些向量作为聚类中心,然后迭代地将像素分配到最近的聚类中心,并重新计算聚类中心,直到收敛为止。
6基于能量函数的图像分割算法
基于能量函数的图像分割算法是通过最小化能量函数来实现分割的。能量函数是一个描述分割质量的函数,它通常包含两个部分:一个表示分割的好坏,另一个表示分割的平滑程度。能量函数的最小化通常通过优化算法实现,例如动态规划、图割算法等。
7基于深度学习的图像分割算法
基于深度学习的图像分割算法是近年来发展起来的新兴算法。该算法的核心思想是使用神经网络从数据中学习特征,并使用这些特征来进行分割。目前,最流行的深度学习算法是卷积神经网络(CNN)。CNN将输入图像通过卷积层、池化层、全连接层等操作,得到特征图,并将特征图用于像素级别的分类。常用的基于深度学习的分割模型包括FCN、U-Net、Mask R-CNN等。
总的来说,图像分割算法的分类可以根据不同的分割思想和技术手段进行划分,每个算法都有其独特的优势和应用场景。
图像分割算法的分类:
细分:(修改了)
基于阈值:
基于区域:
基于边缘:
花了些功夫查找,验证过都是正确的