2022-04-03 特征点和Hough变换形状检测(实验)

人工智能应用——特征点和Hough变换形状检测

一、实验目的
  1. 掌握图像特征点提取
  2. 掌握图像的边缘提取
  3. 掌握Hough形状检测
二、实验内容与记录
  1. 使用OpenCV对图像进行Harris,SIFT特征点提取,并标注特征点。
  • Harris:
    2022-04-03 特征点和Hough变换形状检测(实验)_第1张图片
  • SIFT:
    2022-04-03 特征点和Hough变换形状检测(实验)_第2张图片
    代码:
import cv2
import numpy as np
import imutils 
img = cv2.imread("\small_fish.jpg",1)

# Harris特征点提取
origin = img.copy()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换成灰度图
dst = cv2.cornerHarris(gray, blockSize=2, ksize=3, k=0.04)
dst = cv2.dilate(dst, None)
img[dst > 0.01 * dst.max()] = [0, 0, 255]

cv2.imshow('origin', origin)
cv2.imshow('Harris', img)
cv2.waitKey(0)

# SIFT特征检测
sift = cv2.xfeatures2d.SIFT_create()  # 得到特征点
kp = sift.detect(gray, None)
cv2.drawKeypoints(gray, kp, img)

cv2.imshow('origin', origin)
cv2.imshow('SIFT', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
  1. 使用OpenCV对图像Canny边缘检测,显示并保存。
    2022-04-03 特征点和Hough变换形状检测(实验)_第3张图片
    代码:
import cv2
o = cv2.imread("\small_fish.jpg",cv2.IMREAD_GRAYSCALE)
r = cv2.Canny(o,32,128)

cv2.imshow("original",o)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()

cv2.imwrite("\small_fish_1.jpg", r, [cv2.IMWRITE_PNG_COMPRESSION, 0])
  1. 使用OpenCV对house.tif进行霍夫直线检测,对硬币图片进行霍夫圆形检测。
  • 霍夫直线检测:
    2022-04-03 特征点和Hough变换形状检测(实验)_第4张图片
    代码:
import cv2
img = cv2.imread("\house.jpg")
house = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(house, 50, 200)
lines = cv2.HoughLines(edges, 1,

你可能感兴趣的:(专业学习,人工智能,opencv,python)