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

做网站时需要FTP工具吗技师培训

做网站时需要FTP工具吗,技师培训,做苗木比较好的网站,照片制作软件目录 一、实验原理二、实验步骤1. 图像读取与预处理2. 边缘检测3. 轮廓检测4. 标记轮廓序号 三、实验结果四、完整代码 Hi,大家好,我是半亩花海。 本实验旨在利用 Python 和 OpenCV 库,通过图像处理和边缘检测算法实现黄豆图像的自动识别和计…

目录

  • 一、实验原理
  • 二、实验步骤
    • 1. 图像读取与预处理
    • 2. 边缘检测
    • 3. 轮廓检测
    • 4. 标记轮廓序号
  • 三、实验结果
  • 四、完整代码

Hi,大家好,我是半亩花海。 本实验旨在利用 Python 和 OpenCV 库,通过图像处理边缘检测算法实现黄豆图像的自动识别和计数,并在图像上标记每个黄豆的轮廓序号

一、实验原理

  • 灰度转换:将彩色图像转换为灰度图像,减少计算复杂度。
  • 高斯平滑:使用高斯模糊来减少图像噪声。
  • Canny边缘检测:检测图像中的边缘。
  • 轮廓查找:使用OpenCV的findContours函数检测图像中的轮廓。
  • 绘制轮廓和标记:在原始图像上绘制检测到的轮廓,并标记每个轮廓的序号。

二、实验步骤

1. 图像读取与预处理

import cv2
import matplotlib.pyplot as plt# 读取图像
image = cv2.imread('soybean.jpg')# 转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 平滑处理
blurred = cv2.GaussianBlur(gray, (11, 11), 0)

soybean.jpg 图片如下所示,可自取:

2. 边缘检测

  • cv2.Canny(blurred, 30, 150):使用Canny算法进行边缘检测,参数30和150分别是低阈值和高阈值。
# 使用Canny边缘检测
edges = cv2.Canny(blurred, 30, 150)

3. 轮廓检测

  • cv2.findContours(edges.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE):查找图像中的轮廓。RETR_EXTERNAL表示只检测外部轮廓,CHAIN_APPROX_SIMPLE表示使用简单的链式近似方法。
# 查找轮廓
contours, _ = cv2.findContours(edges.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

4. 标记轮廓序号

  • cv2.boundingRect(contour):计算轮廓的边界框,用于确定标注位置。
  • cv2.drawContours(image, [contour], -1, (0, 255, 0), 2):绘制轮廓,绿色线条,线宽为2像素。
  • cv2.putText(image, str(i + 1), (x + w // 2, y + h // 2), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2):在每个轮廓的中心位置标注序号,红色字体,字体大小为0.5,线宽为2像素。
# 绘制轮廓并标记序号
for i, contour in enumerate(contours):# 计算轮廓的边界框,用于确定标注位置x, y, w, h = cv2.boundingRect(contour)# 绘制轮廓cv2.drawContours(image, [contour], -1, (0, 255, 0), 2)# 在轮廓内标注序号cv2.putText(image, str(i + 1), (x + w // 2, y + h // 2), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2)

三、实验结果

  • plt.figure(figsize=(10, 10)):创建一个显示窗口,大小为10x10英寸。
  • plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)):将处理后的图像转换为RGB格式并显示。
  • plt.axis(‘off’):关闭坐标轴显示。
  • plt.show():显示图像。
  • print(f"黄豆数量: {len(contours)}"):输出检测到的黄豆数量。
# 显示结果图像
plt.figure(figsize=(10, 10))
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.axis('off')
plt.show()# 输出黄豆数量
print(f"黄豆数量: {len(contours)}")

实验结果表明:图像中的所有18个黄豆都被成功识别和标记,每个黄豆的轮廓被绿色线条清晰绘制,序号标记在轮廓中心位置附近。

四、完整代码

import cv2
import matplotlib.pyplot as plt# 读取图像
image = cv2.imread('soybean.jpg')# 转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 平滑处理
blurred = cv2.GaussianBlur(gray, (11, 11), 0)# 使用Canny边缘检测
edges = cv2.Canny(blurred, 30, 150)# 查找轮廓
contours, _ = cv2.findContours(edges.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 绘制轮廓并标记序号
for i, contour in enumerate(contours):# 计算轮廓的边界框,用于确定标注位置x, y, w, h = cv2.boundingRect(contour)# 绘制轮廓cv2.drawContours(image, [contour], -1, (0, 255, 0), 2)# 在轮廓内标注序号cv2.putText(image, str(i + 1), (x + w // 2, y + h // 2), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2)# 显示结果图像
plt.figure(figsize=(10, 10))
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.axis('off')
plt.show()# 输出黄豆数量
print(f"黄豆数量: {len(contours)}")
http://www.mmbaike.com/news/77466.html

相关文章:

  • 做网站收益专业搜索引擎seo合作
  • wordpress 建站 linux如何优化关键词
  • 西宁企业网站建设公司网址服务器查询
  • 男的和女的做那种短视频网站百度网盘资源
  • 网站开发后端是什么百度热门排行榜
  • 福州做网站建设服务商百度客服人工电话95188
  • 土建设计网站网络推广费用高吗
  • 开发网站的意义电脑清理软件十大排名
  • 网站界面的版式架构站长之家爱站网
  • wordpress tidio怎么用前端seo是什么
  • 做押韵句子的网站怎么开设自己的网站
  • 个人网站怎么做代码各大网站推广平台
  • 网站做词产品推广策划方案
  • 局域网建站软件推广营销方案
  • 企业网站服务器建设方法摘抄一小段新闻
  • 莱芜手机网站建设电话网站的建设流程
  • 胶州专业建站nba排名
  • 网站的收费系统怎么做国内最好的搜索引擎
  • nodejs做企业网站百度推广开户电话
  • 大型网站模板金花站长工具
  • 网站备案信息变更软文有哪几种类型
  • 临沂网站建设公司上海最新疫情
  • 长沙专业建网站公司h5制作网站
  • 有域名了 怎么做网站国外搜索引擎大全百鸣
  • 仓库网站开发关系网站优化公司
  • 网站建设与维护王欣千牛怎么做免费推广引流
  • 大陆怎么做香港网站吗seochinaz查询
  • 建站怎么赚钱渠道推广费用咨询
  • 网站开发技术最新技术温州网站优化推广方案
  • 网站百度seo推广怎么做百度一下你就知道官页