使用OpenCV和Python实现缺陷检测的示例代码

这篇具有很好参考价值的文章主要介绍了使用OpenCV和Python实现缺陷检测的示例代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

你可以使用OpenCV和Python来实现缺陷检测。具体来说,你需要使用OpenCV的图像处理功能来对图像进行处理,然后使用机器学习算法来检测缺陷。

以下是一个使用OpenCV和Python实现缺陷检测的示例代码
import cv2
import numpy as np
from sklearn.cluster import KMeans

读取图像

img = cv2.imread('path/to/image.jpg')

转换为灰度图像

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

阈值分割

ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)

形态学操作

kernel = np.ones((3, 3), np.uint8)
opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=2)

轮廓检测

contours, hierarchy = cv2.findContours(opening, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

提取特征

features = []
for cnt in contours:
    x, y, w, h = cv2.boundingRect(cnt)
    area = cv2.contourArea(cnt)
    perimeter = cv2.arcLength(cnt, True)
    compactness = 4 * np.pi * area / (perimeter ** 2)
    features.append([x, y, w, h, area, perimeter, compactness])

聚类

kmeans = KMeans(n_clusters=2, random_state=0).fit(features)
labels = kmeans.labels_

绘制结果

for i, cnt in enumerate(contours):
    x, y, w, h = cv2.boundingRect(cnt)
    if labels[i] == 0:
        cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)
    else:
        cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)

显示结果

你需要使用cv2.imshow()函数来显示结果。具体来说,你可以使用以下代码来显示结果:

cv2.imshow('Result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上面的代码中,'Result’是窗口的名称,img是要显示的图像。cv2.waitKey(0)函数会等待用户按下任意键后关闭窗口。cv2.destroyAllWindows()函数会关闭所有打开的窗口。文章来源地址https://www.toymoban.com/news/detail-521891.html

到了这里,关于使用OpenCV和Python实现缺陷检测的示例代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python+OpenCV 简单实现人脸检测多个和人脸识别 2(附代码)

    如果dilb和face_recognition第三方包安装失败,请移步到Python 解决dilb和face_recognition第三方包安装失败_水w的博客-CSDN博客 上篇请移步到Python+dilb 简单实现人脸检测(附代码)_水w的博客-CSDN博客 本篇是在上篇的工作基础上进行的。 目录 6 人脸检测多个 7 视频检测 8 拍照保存 9 训练

    2024年01月16日
    浏览(53)
  • python+opencv+mediapipe实现手势检测上下左右(含完整代码)

    应用场景:ai换脸,根据左右手势选择图片,上下则表示选中。 版本号:python3.7(一开始是3.6,但是mediapipe最低就是3.7 因为网上检测的都不太准,所以我在判断的时候加入了如果70次里55次检测的是左才返回左,测试完之后效果还可以,蛮准的。判断方法想的头都要秃了。 实

    2024年04月11日
    浏览(47)
  • 基于opencv与mediapipe的面部跟踪(人脸检测追踪)python代码实现

            面部跟踪主要是从图像或视频中检测出人脸并输出人脸位置及其大小等有效信息,并在后续帧中继续捕获人脸的位置及其大小等信息,实时跟踪人脸。此技术可用于海关、机场、视频会议、拍照对焦、面部打码等业务场景。(与人脸识别是不同范畴)         本

    2024年01月17日
    浏览(68)
  • OpenCV 项目开发实战--对图像中的斑点进行检测(Python、C++代码实现)

    Blob 是图像中一组连接的像素,它们共享一些共同的属性(例如,灰度值)。在上图中,暗连接区域是斑点,斑点检测旨在识别和标记这些区域。 文末附相关测试代码的下载链接 OpenCV 提供了一种基于不同特征检测和过滤斑点的便捷方法。让我们从最简单的例子开始 Python

    2024年02月14日
    浏览(51)
  • 使用Python和OpenCV实现实时人脸检测并保存截图

    在本篇博客中,我们将使用Python和OpenCV库实现一个实时人脸检测的小项目。我们将利用OpenCV中的Haar级联分类器来检测摄像头捕获的图像中的人脸。 通过摄像头实时捕获视频流。 使用Haar级联分类器检测视频帧中的人脸。 在检测到的人脸周围绘制矩形框。 实时显示检测结果。

    2024年02月11日
    浏览(40)
  • 检测和识别车牌的python的简单示例代码

    然后用下面的代码: 先读取一张车牌图像,将其转换为灰度图像,用Canny算法进行边缘检测。然后,用OpenCV的findContours函数找到图像中的轮廓,根据车牌的宽高比和大小进行筛选,把符合条件的车牌图像截取出来。最后,使用Tesseract OCR引擎对截取出来的车牌图像进行识别,并

    2024年02月11日
    浏览(93)
  • OpenCV、Dlib 和深度学习中的各种人脸检测方法与性能比较--包含C++ 和 Python 代码实现

    文末附基于Python和C++两种方式实现的测试代码下载链接 在本教程中,我们将讨论 OpenCV、Dlib 和深度学习中的各种人脸检测方法,并对这些方法进行定量比较。我们将为以下面部检测器共享 C++ 和 Python 代码: OpenCV 中的 Haar 级联人脸检测器 OpenCV 中基于深度学习的人脸检测器。

    2024年02月10日
    浏览(46)
  • python+openCV使用SIFT算法实现印章的总相似度检测

    首先整体流程是预建了一个印章库,包含若干张图片。目的是输入一张印章图片,与库里图片对比,最终显示相似度最高的三张。记一下关键代码。 1.图像预处理 主要是红色区域提取、常规灰度二值、对于形态不好的图片做个腐蚀啥的。 2.做一个霍夫圆打开,方便后续文字识

    2024年02月08日
    浏览(46)
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的布匹缺陷检测系统(Python+PySide6界面+训练代码)

    摘要:本文介绍了一种基于深度学习的布匹缺陷检测系统的代码,采用最先进的YOLOv8算法并对比YOLOv7、YOLOv6、YOLOv5等算法的结果,能够准确识别图像、视频、实时视频流以及批量文件中的布匹缺陷。文章详细解释了YOLOv8算法的原理,并提供了相应的Python实现代码、训练数据集

    2024年03月15日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包