python-opencv划痕检测-续

这篇具有很好参考价值的文章主要介绍了python-opencv划痕检测-续。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

python-opencv划痕检测-续

这次划痕检测,是上一次划痕检测的续集。

处理的图像如下:
图片 划痕 检测代码 python,python,人工智能,python,opencv,开发语言

这次划痕检测,我们经过如下几步:
第一步:读取灰度图像
第二步:进行均值滤波
第三步:进行图像差分
第四步:阈值分割
第五步:轮廓检测
第六步:绘制轮廓,并将过滤面积较小的轮廓,且进行轮廓填充

代码如下:

import cv2
import copy
import math
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import os


path=r'sta.bmp'

img=cv2.imread(path)

def histogram_equalization(image):
    gray = image
    equalized = cv2.equalizeHist(gray)
    return equalized

# 图像去噪 - 高斯滤波
def gaussian_filtering(image):
    blurred = cv2.GaussianBlur(image, (3, 3), 0)
    return blurred


#img=gaussian_filtering(img)

#img = histogram_equalization(img)
img_gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)




def cv_show(name,img):
    cv2.imshow(name,img)
    #cv2.waitKey(0),接收0,表示窗口暂停
    cv2.waitKey(0)
    #销毁所有窗口
    cv2.destroyAllWindows()



img_mean_3 = cv2.blur(img_gray, (10, 10))

#图像差分
img_diffence=cv2.subtract(img_mean_3,img_gray)

img_diffence1=img_mean_3-img_gray

plt.subplot(131)
plt.imshow(img_diffence,'gray')
plt.title('img_diffence')


#阈值分割

_,img_binary=cv2.threshold(img_diffence,5,255,cv2.THRESH_BINARY_INV)
plt.subplot(132)
plt.imshow(img_binary,'gray')
plt.title('img_binary')

plt.show()
#cv_show('img

grayimg=img_binary



cout,hi=cv2.findContours(grayimg,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

#hierarchy 轮廓层级关系
result=np.zeros(img.shape,np.uint8)

#绘制轮廓边框
for  i in range(len(cout)):
    moms=cv2.moments(cout[i])#计算轮廓的矩
    area=moms['m00']#面积
    if area>50 and area<1000:
            cv2.drawContours(result,cout,i,(0,0,255),thickness=cv2.FILLED,hierarchy=hi,maxLevel=0)


cv_show('result',result)

os.system("pause")

结果如下:
图片 划痕 检测代码 python,python,人工智能,python,opencv,开发语言
图片 划痕 检测代码 python,python,人工智能,python,opencv,开发语言文章来源地址https://www.toymoban.com/news/detail-797562.html

到了这里,关于python-opencv划痕检测-续的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • python-opencv将视频逐帧保存为图片

    本文使用python-opencv将本地视频逐帧保存为图片(.jpg)格式,将保存的图片放在当前目录的一个文件夹内。 环境:python3.7 需要python库:opencv(cv2),os,time 代码如下: 将需要保存图片的视频文件放置在与程序同一目录下 运行结果,当前目录下出现以时间命名的文件夹,里面保存

    2024年02月15日
    浏览(39)
  • Python-opencv实现目标检测定位:判断固定颜色物体是否在规定区域内

    主要实现实时检测视频或者摄像头中出现的固定颜色(本例中使用绿色)是否在规定的区域范围内,并将结果反馈到原视频上。 实现的效果如下图所示: 1、当绿色物体出现在屏幕中的黑框中时,在视频左上角反馈一个“True”的信息。 2、当绿色物体出现在屏幕中但没有完全

    2024年01月17日
    浏览(47)
  • 关于HSV了解这些就够了,python-opencv获取图片精确hsv的值

    有时候想要获得一幅图片里面 某个物体的精确的hsv的值,需要怎么做呢? 在输出的hsv的图像中,用鼠标左键点击,就可以知道那个点的精确的hsv的值     RGB 是我们接触最多的颜色空间,由三个通道表示一幅图像,分别为红色(R),绿色(G)和蓝色(B)。这三种颜色的不同组合可以

    2024年02月05日
    浏览(54)
  • 解决python-opencv:(-215:Assertion failed) _img.empty() in function ‘cv::imwrite‘在将视频分成帧图片,写入时出现的问题

    最近在搞视频检测问题,在用到将视频分帧保存为图片时,图片可以保存,但是会出现(-215:Assertion failed) !_img.empty() in function \\\'cv::imwrite\\\'问题而不能正常运行,在检查代码、检查路径等措施均无果后,了解了视频分帧的原理后,才解决了问题,就这一个问题,解决了两天才解决

    2024年02月15日
    浏览(48)
  • 人工智能-OpenCV+Python实现人脸识别(人脸检测)

    在OpenCV中使用Haar特征检测人脸,那么需要使用OpenCV提供的xml文件(级联表)在haarcascades目录下。这张级联表有一个训练好的AdaBoost训练集。首先要采用样本的Haar特征训练分类器,从而得到一个级联的AdaBoost分类器。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征

    2024年02月06日
    浏览(104)
  • Python Opencv 图片识别表格:边框线检测

    Python数据开发工作需求对图片做边框线检查和图片中的直线,非常实用建议收藏 下面需要用模块,先安装一下: 该示例代码使用边缘检测和霍夫变换提取图片中的直线,然后根据直线数量来判断是否有表格。这只是一个简单的示例,具体的判断方法和算法需要根据具体情况

    2024年02月16日
    浏览(41)
  • python-opencv

    python_opencv安装使用笔记 链接: OpenCV——基于Python开发的OpenCV安装教程 链接: Python使用pip安装库时WARNING: You are using pip version 21.3.1; however, version 22.3.1 is available.的解决办法 链接: Opencv中的图像相加,相减,相除,相乘(python实现) 链接: opencv-python识别魔方特定颜色方块,并输

    2024年02月01日
    浏览(47)
  • 图像金字塔、高斯金字塔、拉普拉斯金字塔是怎么回事?附利用拉普拉斯金字塔和高斯金字塔重构原图的Python-OpenCV代码

    图像金字塔是对图像进行多分辨率表示的一种有效且简单的结构。 一个图像金字塔是一系列以金字塔形状排列的分辨率逐步降低的图像。图像金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率表示。 图像金字塔有什么作用? 图像金字塔常用于图像缩放、图像重

    2024年02月04日
    浏览(61)
  • ROS+Python-opencv(1)

    #!/usr/bin/env python # -*- coding: utf-8 -*- # # Copyright (c) 2021 PS-Micro, Co. Ltd. # # SPDX-License-Identifier: Apache-2.0 # #该python文件可以当作节点放在工作空间中启动 import time import rospy import cv2 from cv_bridge import CvBridge, CvBridgeError from sensor_msgs.msg import Image import numpy as np from math import * from geometry_

    2024年03月19日
    浏览(66)
  • 智能车巡线python-opencv

    思路:先拿赛道通过HSV调阈值,然后得到二值化图片,对二值化图像进行巡线; 以左线为例子:(图片大小为480*640) 图片以最后一行开始往第一行循环作为外循环(设为i),以中线开始往左减一作为内循环(设为j);记录该行的跳变点:即如果该行的该列为白色(255),

    2024年02月04日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包