当前位置: 首页 > news >正文

东莞小学网站建设培训学校网站建设要点

东莞小学网站建设,培训学校网站建设要点,域名年龄对seo的影响,wordpress网站音乐播放目录 一、实验内容 二、实验过程 2.1 交互式分割实验 2.1.1 交互式分割 实验代码 2.1.2 实验结果 2.2 聚类算法实现图像分割 2.2.1 聚类算法实现分割 实验代码 2.2.2 实验结果 三、实验总结 一、实验内容 了解图割操作,实现用户交互式分割,通过…

目录

一、实验内容

二、实验过程

2.1 交互式分割实验

2.1.1 交互式分割 实验代码

2.1.2 实验结果

2.2 聚类算法实现图像分割

2.2.1 聚类算法实现分割 实验代码

2.2.2 实验结果

三、实验总结


一、实验内容

  1. 了解图割操作,实现用户交互式分割,通过在一幅图像上为前景和背景提供一些标记或利用边界框选择一个包含前景的区域,实现分割。
  2. 采用聚类法实现图像的分割,例如K-means、Mean-Shift、DBSCAN等方法

二、实验过程

2.1 交互式分割实验
2.1.1 交互式分割 实验代码

这里使用OpenCV库进行图像分割,通过用户在图像上绘制矩形框来指定前景区域,然后利用GrabCut算法对图像进行分割,从而将前景和背景分离。通过定义鼠标回调函数处理用户的鼠标事件,当用户完成矩形框绘制后,根据掩码显示分割结果。掩码中的值为2或0的区域被认为是背景,其他区域被认为是前景。最终结果显示在名为'result'的窗口中。

import cv2
import numpy as np# img = cv2.imread('D:\Computer vision\A_picture.png')
img=cv2.imread('D:\Computer vision\School picture\school8.jpeg')
img = cv2.resize(img, (960, 720))mask = np.zeros(img.shape[:2], np.uint8)bgdModel = np.zeros((1, 65), np.float64)
fgdModel = np.zeros((1, 65), np.float64)def draw_rect(event, x, y, flags, param):global ix, iy, drawing, rect_overif event == cv2.EVENT_LBUTTONDOWN:drawing = Trueix, iy = x, yelif event == cv2.EVENT_MOUSEMOVE:if drawing == True:img_copy = img.copy()cv2.rectangle(img_copy, (ix, iy), (x, y), (0, 255, 0), 2)cv2.imshow('image', img_copy)elif event == cv2.EVENT_LBUTTONUP:drawing = Falserect_over = Truecv2.rectangle(img, (ix, iy), (x, y), (0, 255, 0), 2)rect = (min(ix, x), min(iy, y), abs(ix - x), abs(iy - y))cv2.grabCut(img, mask, rect, bgdModel, fgdModel, 5, cv2.GC_INIT_WITH_RECT)cv2.imshow('image', img)cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_rect)drawing = False  
ix, iy = -1, -1  
rect_over = False  while True:cv2.imshow('image', img)k = cv2.waitKey(1) & 0xFFif rect_over == True:mask2 = np.where((mask == 2) | (mask == 0), 0, 1).astype('uint8')img_cut = img * mask2[:, :, np.newaxis]cv2.imshow('result', img_cut)if k == 27:break
cv2.destroyAllWindows()
2.1.2 实验结果

(1)测试1:前景和背景区分明显

原图如图1所示,前景和背景区分明显,绘制矩形框如图2所示,图像分割结果如图3所示,可以看到分割效果较好。

图1
图2
图3

(2)测试2:前景和背景区分不明显

原图如图4所示,前景和背景区分不明显,绘制矩形框如图5所示,图像分割结果如图6所示,可以看到分割效果较差。

图4
图5
图6

(3)测试3:其他情况

再次尝试其他图片,原图如图7所示,标注的矩形框及分割结果如图8所示,当分割的矩形框包围的前景与背景有较大差距,能明显区分时,效果较好。

图7
图8
2.2 聚类算法实现图像分割
2.2.1 聚类算法实现分割 实验代码

这里使用OpenCV库进行图像分割,通过对一张图像进行颜色聚类,实验中分成3个簇(3种颜色),获取每个像素的聚类标签和每个簇的中心点颜色值。根据聚类结果,将每个像素替换为其所属簇的中心点颜色值,从而生成分割后的图像。

import numpy as np
import cv2
from sklearn.cluster import KMeans# img = cv2.imread('D:\Computer vision\A_picture.png')
img=cv2.imread('D:\Computer vision\School picture\school10.jpeg')img = cv2.resize(img, (960, 720))img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)h, w, c = img.shape
data = img.reshape((h * w, c))kmeans = KMeans(n_clusters=3, random_state=0)
kmeans.fit(data)labels = kmeans.labels_
centers = kmeans.cluster_centers_labels = labels.reshape((h, w))
result = np.zeros((h, w, c), dtype=np.uint8)for i in range(h):for j in range(w):result[i, j] = centers[labels[i, j]]cv2.imshow('Original', img)
cv2.imshow('Segmented', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.2.2 实验结果

(1)测试1:前景和背景区分明显

原图如图9所示,前景和背景区分明显,图像转换为RGB格式如图10所示,使用K-means聚类进行图像分割结果如图11所示,可以看到分割效果较好。

图9
图10
图11

(2)测试2:前景和背景区分不明显

原图如图12所示,前景和背景区分不明显,图像转换为RGB格式如图13所示,使用K-means聚类进行图像分割结果如图14所示(n_clusters=3)。当修改参数,即使用n_clusters=2时的图像分割结果如图15所示。

图12
图13
图14
图15

(3)测试3:其他情况

原图如图16所示,前景和背景区分不明显,图像转换为RGB格式如图17所示,使用K-means聚类进行图像分割结果如图18所示(n_clusters=3)。当修改参数,即使用n_clusters=2时的图像分割结果如图19所示。

图16
图17
图18
图19

三、实验总结

图像分割,是将一幅数字图像按照某种目的划分为两个或多个子图像区域。本次实验主要实现交互式图像分割和使用KMeans聚类算法对图像进行颜色分割方法,交互式分割通过利用边界框(bounding box)选择一个包含前景的区域,K-means聚类法将图像的像素点聚类为 K 个不同的组,每个组对应图像中的一个分割区域。这种分割方法的核心思想是 将图像像素看作数据点,并依据像素的特征对其进行聚类 。通常情况下,K-means 会基于像素的颜色特征(RGB或其他颜色空间的值)和空间位置进行聚类。

http://www.dtcms.com/a/528954.html

相关文章:

  • 网络安全编程——TCP客户端以及服务端Python实现
  • 基于多尺度特征融合的自注意力度量学习的小样本故障诊断
  • UVa 1227 The Longest Constant Gene
  • datasophon1.2.1 二开
  • 建大网站首页华为商城网站建设
  • 运放的虚短和虚断
  • 建设网站公司兴田德润在哪里谷歌seo外链
  • 是“浴盆曲线”失灵,还是HDD变好了?
  • Tuesday JS,一款可视化小说编辑器
  • 景区旅游网站平台建设方案销售案例网站
  • 【小白笔记】input() 和 print() 这两个函数
  • 营销型网站哪家做的好东莞app
  • 部署PHP8.4(KylinV10SP3、Ubuntu2204、Rocky9.3)
  • 一套配置 双重体验:孪易 IOC 化解 端/流双渲染应用难题
  • jQuery Mobile 实例
  • 免费行情软件网站mnw做教育网站
  • WordPress网站hym地图凯里做网站
  • 东莞做网站优化哪家好网站识别手机电脑代码
  • Java---String类
  • Flame 中使用 GameWidget(完整使用手册)
  • html5制作手机网站做淘宝代码的网站
  • P2216 [HAOI2007] 理想的正方形
  • 设计模式23种-C++实现
  • 涌现的架构:集体智能框架构建解析
  • 大模型技术的核心之“效率高”
  • 分类网站怎么做seo什么网站出项目找人做
  • Unity 3D笔记(进阶部分)——《B站阿发你好》
  • 怎样建设好网站如何评判一个网站建设的怎么样
  • 【017】旅游网
  • 两款实用电脑工具:屏幕监控与文件整理,提升工作效率