python图像缺陷识别算法_计算机视觉:图像分类定位(单一目标检测)python实现...

前言

目标检测:我们不仅要用算法判断图片中是不是猫还是狗, 还要在图片中标记出它的位置, 用边框或红色方框把猫狗圈起来, 这就是目标检测问题。其中“定位”的意思是判断猫狗在图片中的具体位置。

目标检测有两类任务:单一目标 ,多目标。

能力差,电气专业,又未怎么深入研究cv.

所以本文先探讨单一目标。

HOG+SVM实现行人检测

不多说,上代码

import cv2 as cv

# 读取图像

src = cv.imread("duoren.jpg")

cv.imshow("input", src)

# HOG + SVM

hog = cv.HOGDescriptor()

hog.setSVMDetector(cv.HOGDescriptor_getDefaultPeopleDetector())

# Detect people in the image

(rects, weights) = hog.detectMultiScale(src,winStride=(4, 4), padding=(8, 8),scale=1.25,useMeanshiftGrouping=False)

# 矩形框

for (x, y, w, h) in rects:

cv.rectangle(src, (x, y), (x + w, y + h), (0, 255, 0), 2)

# 显示[添加链接描述](https://blog.csdn.net/kobeyu652453/article/details/107382227)

cv.imshow("result", src)

cv.waitKey(0)

cv.destroyAllWindows()

图像定位实现

目标检测算法很复杂。

我尝试用 图像分类+对象测量 来实现单目标的图像检测。

图像分类 对象测量 不多说了,参考上面给的链接。

1读取图片并去噪

import cv2 as cv

image= cv.imread("catdog/dog/dog.77.jpg")

image=cv.resize(image,None,fx=0.5,fy=0.5)

blurred = cv.GaussianBlur(image, (5, 5), 0) # 去噪

2二值化图像

gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY)

ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)

3绘制轮廓边缘

contours, hireachy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)

cv2.findContours()函数第一个参数是要检索的图片,必须是为二值图,即黑白的(不是灰度图),所以读取的图像要先转成灰度的,再转成二值图,

参数讲解

contours,hierarchy=cv2.findContours(image,mode,method)

contours:轮廓

hierarchy:图像的拓扑信息(轮廓层次)(存储上一个轮廓,父轮廓…)

image:二值图像

mode:轮廓检索方式

method:轮廓的近似方法

4求得包含点集最小面积的矩形,这个矩形是可以有偏转角度的,可以与图像的边界不平行。

c = sorted(contou

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值