IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 计算机视觉实验二 -> 正文阅读

[人工智能]计算机视觉实验二

参考教材:计算机视觉?编程 【人民邮电出版社】

语言:python?

软件:VS?code

Harris角点检测算法

角点的定义:局部窗口沿各方向移动,均产生明显变化的点;图像局部曲率突变的点。

判断角点算法好坏的标准:检测出图像中“真实的”角点;准确的定位性能;很高的稳定性;具有对噪声的鲁棒性;具有较高的计算效率

Harris角点算法的基本思想:从图像局部的小窗口观察图像特征;角点定义 : 窗口向任意方向的移动都导致图像灰度的明显变化

Harris矩阵Mi的特征值有三种情况:
1)如果 λ1和 λ 2都是很大的正数,则该x点为角点;
2)如果λ1很大,λ 2 很小(接近于0),则该区域内存在一个边,该区域内的平均Mi的特征值不会变化太大;
3)如果λ1λ2 都是很小的数 (λ1≈λ2≈0), 则该区域为空。

代码:

from pylab import *
from PIL import Image
from PCV.localdescriptors import harris

im = array(Image.open('4.jpg').convert('L'))

harrisim = harris.compute_harris_response(im)

harrisim1 = 255 - harrisim

figure()
gray()

subplot(141)
imshow(harrisim1)
print (harrisim1.shape)
axis('off')
axis('equal')

threshold = [0.01,0.1,0.2]
for i, thres in enumerate(threshold):

    filtered_coords = harris.get_harris_points(harrisim, 6, thres)
    subplot(1, 4, i+2)
    imshow(im)
    print(im.shape)
    plot([p[1] for p in filtered_coords], [p[0] for p in filtered_coords], '*')
    axis('off')
show()

实验结果:

寻找对应点

代码:

from pylab import *
from PIL import Image
from PCV.localdescriptors import harris
from PCV.tools.imtools import imresize

im1 = array(Image.open("4.jpg").convert("L"))
im2 = array(Image.open("5.jpg").convert("L"))

# resize加快匹配速度
im1 = imresize(im1, (im1.shape[1]//2, im1.shape[0]//2))
im2 = imresize(im2, (im2.shape[1]//2, im2.shape[0]//2))

wid = 5
harrisim = harris.compute_harris_response(im1, 5)
filtered_coords1 = harris.get_harris_points(harrisim, wid+1)
d1 = harris.get_descriptors(im1, filtered_coords1, wid)

harrisim = harris.compute_harris_response(im2, 5)
filtered_coords2 = harris.get_harris_points(harrisim, wid+1)
d2 = harris.get_descriptors(im2, filtered_coords2, wid)

print('starting matching')
matches = harris.match_twosided(d1, d2)

figure()
gray()
harris.plot_matches(im1, im2, filtered_coords1, filtered_coords2, matches)
show()

?

结果 :

?SIFT算法

sifi可以解决的问题:
? 目标的旋转、缩放、平移(RST)
? 图像仿射/投影变换(视点viewpoint)
? 弱光照影响(illumination)
? 部分目标遮挡(occlusion)
? 杂物场景(clutter)
? 噪声

算法步骤:

  1. 提取关键点:比如角点、边缘点、暗区域的亮点以及亮区域的暗点
  2. 对关键点附加详细的信息(局部特征),即描述符;
  3. 通过特征点(附带上特征向量的关键点)的两两比较找出相互匹配的若干对特征点,建立景物间的对应关系。

代码:

from PIL import Image
from pylab import *
from PCV.localdescriptors import sift
from PCV.localdescriptors import harris



imname = '1.jpg'
im = array(Image.open(imname).convert('L'))
sift.process_image(imname, 'empire.sift')
l1, d1 = sift.read_features_from_file('empire.sift')


figure()
gray()
subplot(131)
sift.plot_features(im, l1, circle=False)
title('1')
subplot(132)
sift.plot_features(im, l1, circle=True)
title('2')

harrisim = harris.compute_harris_response(im)


subplot(133)
filtered_coords = harris.get_harris_points(harrisim, 6, 0.1)
imshow(im)
plot([p[1] for p in filtered_coords], [p[0] for p in filtered_coords], '*')
axis('off')
title('3')

show()

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:06:59  更:2022-06-25 18:10:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:55:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码