GTA5自动驾驶二 边沿检测

边沿检测采用Candy算法,比较经典,opencv自带

Candy算法的原理可以参见这篇博文:http://www.tuicool.com/articles/Y3q2Mf

整个流程是这样的:

  1. 读取图像
  2. 将图像转化为灰度图像
  3. 运行高斯滤波
  4. 运行Candy算子得到边沿

示例代码如下:

#! usr/bin/python
#coding=utf-8
#doing all the relevant imports
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
import cv2

image = mpimg.imread(‘exit-ramp.jpg‘)
gray = cv2.cvtColor(image,cv2.COLOR_RGB2GRAY)
# Define a kernel size for Gaussian smoothing / blurring
# Note: this step is optional as cv2.Canny() applies a 5x5 Gaussian internally
kernel_size = 5
blur_gray = cv2.GaussianBlur(gray,(kernel_size,kernel_size),10)
# Define parameters for Canny and run it
# NOTE: if you try running this code you might want to change these!
low_threshold = 1
high_threshold = 60
edges = cv2.Canny(blur_gray, low_threshold, high_threshold)

# Display the image

plt.subplot(221)
plt.imshow(image)
plt.subplot(222)
plt.imshow(gray,cmap=‘gray‘)
plt.subplot(223)
plt.imshow(blur_gray)
plt.subplot(224)
plt.imshow(edges, cmap=‘Greys_r‘)
plt.show()

运行结果:

时间: 2024-10-25 11:10:08

GTA5自动驾驶二 边沿检测的相关文章

GTA5自动驾驶一 截取游戏窗口

截取游戏窗口使用PIL库内的ImageGrab ImageGrab模块用于将当前屏幕的内容或者剪贴板上的内容拷贝到PIL图像内存里面,我们暂定使用一个800*640的窗口,虽然不是很好看,但足够我们进行图像处理了,代码如下: 1 #! usr/bin/python 2 #coding=utf-8 3 4 import numpy as np 5 from PIL import ImageGrab 6 import cv2 7 import time 8 9 def screen_record()

优达学城自动驾驶课程项目——车道检测

汽车在道路上行驶需要遵循一定的行驶规则,路面的车道则起到规范汽车行驶规则的作用.车道的种类有很多种,如单行线.双行线,虚线.网格线等,不同颜色.形状的车道线代表着不同的行驶规则,汽车和行人可以根据这些规则来使用道路,避免冲突.因此,准确检测并识别车道类型,并按照相应规则正确行驶,是汽车实现自动驾驶的基础. 优达学城的自动驾驶项目课程包含了一个车道线检测项目,其主要目的就是教给无人车如何检测并识别车道,本文档将该项目内容进行总结整理. 车道线检测方法主要分为两类:(1)基于道路特征的车道线检测:(

Google Waymo自动驾驶安全技术报告(二)

Waymo的技术在公开道路上.封闭测试场.仿真器进行了广泛的测试,所以可以保证自动驾驶系统的每一部分在其ODD内都有强大.可靠.安全的处理能力. Waymo的自动驾驶系统由三个相互独立.严格测试的子系统组成: 1)经过OEM认证的基础车辆系统: 2)传感器和计算机等内部硬件系统: 3)做出所有驾驶决策的自动驾驶软件系统: 这些子系统组合起来构成一个完整的自动驾驶系统,然后我们对其进行进一步的测试和验证.对各个系统的测试和验证可以确保自动驾驶车辆满足我们对系统设定的所有安全要求. 3. Testi

自动驾驶定位算法-直方图滤波(Histogram Filter)定位

然后定义一个新的状态空间\(y_t \in \{0,-,n?1\}\),当且仅当\(x(t)∈b_i\)时,\(y_t=i\),由于\(y_t\)是一个离散的状态空间,我们就可以采用离散贝叶斯算法计算\(bel(y_t)\).\(bel(y_t)\)是对\(bel(x_t)\)的近似,它给出x(t)在每一个\(b_i\)的概率,\(b_i\)划分的越精细,计算的结果就越精确,当然精确的代价是计算成本的上升. 2.1D直方图滤波在自动驾驶定位的应用 如下图所示,无人驾驶汽车在一维的宽度为5m的世界

国内首次深度学习自动驾驶,阿波罗不再只是计划:来自百度开发者中心的观察报告

导读:从世界上首个可在真实道路上实现端到端模式的高级自动驾驶模型Road Hackers,到百度和汽车零部件厂商合作开发的车载可计算平台 BCU,从诞生之初就备受关注的"阿波罗计划"逐渐揭开了它神秘的面纱.而正如百度智能汽车事业部总经理顾维灏在主题演讲中所说,这些,不过仍是阿波罗计划的凤毛麟角. 2017年6月8日,上海 CES Asia 现场. 作为新智元特派员,我置身于上海新国际展览中心 N3 智能驾驶主题馆,被众多汽车品牌的未来炫酷车型所包围.一瞬间,仿佛回到了一个多月前同样在这

FPGA学习笔记之格雷码、边沿检测、门控时钟

一.格雷码 格雷码的优点主要是进位时只有一位跳变,误码率低. 1.二进制转格雷码 我们观察下表: 二进制码 格雷码 00 00 01 01 10 11 11 10 二进制码表示为B[],格雷码表示为G[],则有 G(i) = B(i),i为最高位 G(i-1) = B(i) xor B(i-1),i非最高位 用verilog可以这样写 1 reg [WIDTH-1:0] bin; 2 reg [WIDTH-1:0] gray; 3 parameter WIDTH = 8; 4 always @(

从多级延迟触发器到边沿检测

一.多级延迟触发器(或延迟触发器链) (1)多级延迟触发器电路 多级延迟触发器,顾明思议就是多个触发器串在一起,对信号进行打拍,一个触发器就延时了一拍,也就是延迟了一个时钟周期. 多级触发器的代码如下所示:  1 module DFF_N #(parameter N=3)(  2   input clk,  3   input reset,  4   input [N-1:0] D,  5   output reg [N-1:0] Q  6 );  7 reg [N-1:0]d0;  8 reg

深度|余凯:基于深度学习的自动驾驶之路

2016年是一个非常重要的历史节点,标志着知行合一的人工智能系统将走向历史舞台.它改变的不光是下围棋,会改变很多很多事情.——余凯 在“2016年智能汽车•上海论坛”之“ADAS与自动驾驶趋势论坛”上,地平线机器人创始人兼CEO余凯博士发表了题为“基于深度学习的自动驾驶之路”的主题演讲. 这里有技术普及,有行业观察,还有对未来生活的美好展望.你想知道的有关深度学习和自动驾驶的一切,我们今天都告诉你. 1深度学习 · 诞生与成长 每个人都在讲大数据,就像每个中学生都在讲“性”,但是他们从来没有经历

从延迟触发器链到边沿检测

本文记录一下关于延迟触发器链与它的常用用法(即边沿检测.多级延迟的触发器应该是比较常用的,当我们需要对信号信号进行延时,这个时候我们就用到了延迟触发器链.下面就来记录一下吧. 一.多级延迟触发器(或延迟触发器链) (1)多级延迟触发器电路 多级延迟触发器,顾明思议就是多个触发器串在一起,对信号进行打拍,一个触发器就延时了一拍,也就是延迟了一个时钟周期. 多级触发器的代码如下所示: 1 module DFF_N #(parameter N=3)( 2 input clk, 3 input rese