机器视觉 边缘检测算子
1.实验目的
利用opencv python实现对下图实现边缘检测算子。
2.实验过程
(1)在python安装opencv库, pip install opencv-python。
(2)在python安装Pillow库, pip install Pillow。同理,安装Numpy库。
(3)编写代码
代码如下:
import cv2
import numpy
import cv2 as cv
import numpy as np
from PIL import Image, ImageDraw, ImageFont
# coding=utf-8# cv2解决绘制中文乱码
def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):if (isinstance(img, numpy.ndarray)): # 判断是否OpenCV图片类型img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))# 创建一个可以在给定图像上绘图的对象draw = ImageDraw.Draw(img)# 字体的格式fontStyle = ImageFont.truetype("font/simsun.ttc", textSize, encoding="utf-8")# 绘制文本draw.text((left, top), text, textColor, font=fontStyle)# 转换回OpenCV格式return cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)#图像反色
def inverse_color(image):height,width,temp = image.shapeimg2 = image.copy()for i in range(height):for j in range(width):img2[i,j]=(255-image[i,j][0],255-image[i,j][1],255-image[i,j][2])return img2 #读取图像
src = cv2.imread("dip_switch_02.bmp")
#反色
one = inverse_color(src)
#加入文本信息
image1=cv2ImgAddText(one,"原图像",5, 5, (255, 0, 0), 20)
#显示图片
cv2.imshow("image1",image1)#sobel算子边缘检测
sobelx = cv2.Sobel(one,cv2.CV_16S,1,0)
sobely = cv2.Sobel(one,cv2.CV_16S,0,1)
sobelx = cv2.convertScaleAbs(sobelx)
sobely = cv2.convertScaleAbs(sobely)
sobelXY = cv2.addWeighted(sobelx,0.5,sobely,0.5,0)
tow=inverse_color(sobelXY)
image2=cv2ImgAddText(tow,"sobel算子边缘检测结果",5, 5, (255, 0, 0), 20)
cv2.imshow("image2",image2)#robert算子边缘检测
kernelx = np.array([[-1,0],[0,1]], dtype=int)
kernely = np.array([[0,-1],[1,0]], dtype=int)
x = cv2.filter2D(one, cv2.CV_16S, kernelx)
y = cv2.filter2D(one, cv2.CV_16S, kernely)
absX = cv2.convertScaleAbs(x)
absY = cv2.convertScaleAbs(y)
Roberts = cv2.addWeighted(absX,0.5,absY,0.5,0)
three=inverse_color(Roberts)
image3=cv2ImgAddText(three,"robert算子边缘检测结果",5, 5, (255, 0, 0), 20)
cv2.imshow("image3",image3)#gauss算子边缘检测
gray_lap=cv2.Laplacian(one,cv2.CV_16S,ksize=5)
gauss_img=cv2.convertScaleAbs(gray_lap)
dst3=cv2.bitwise_not(gauss_img)
image4=cv2ImgAddText(dst3,"gauss算子边缘检测结果",5, 5, (255, 0, 0), 20)
cv2.imshow("image4",image4)
cv2.waitKey(0)# 等待键盘输入,不输入则无限等待
cv2.destroyAllWindows()
3.运行结果
运行结果如下图所示。
图3.1 原图像
图3.2 sobel算子边缘检测结果
图3.3 robert算子边缘检测结果
图3.4 gauss算子边缘检测结果
机器视觉 边缘检测算子相关推荐
- python 视觉技术_python+opencv实现机器视觉基础技术(边缘提取,图像滤波,边缘检测算子,投影,车牌字符分割)...
机器视觉是人工智能正在快速发展的一个分支.简单说来,机器视觉就是用机器代替人眼来做测量和判断.它是一项综合技术,包括图像处理.机械工程技术.控制.电光源照明.光学成像.传感器.模拟与数字视频技术.计算 ...
- 机器视觉边缘检测算法详解
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 边缘检测相关算法的步骤如下: 1.滤波: 边缘检测算法主要是基于图 ...
- 利用Canny边缘检测算子进行边缘检测的原理及OpenCV代码实现
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 Canny算子是John Canny在1986年 ...
- 图像处理常用边缘检测算子总结
不同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像.需要说明的是:边缘和物体间的边界并不等同,边缘指的是图像中像素的值有突变的地方,而物体间的边界指的是现实场景中的存在于物体之间的边界 ...
- 图像处理常用边缘检测算子
图像处理常用边缘检测算子 不同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像.需要说明的是:边缘和物体间的边界并不等同,边缘指的是图像中像素的值有突变的地方,而物体间的边界指的是现实场 ...
- Halcon —— 边缘检测算子详解
一.算子介绍 1.1 种类 halcon内常用的边缘检测算子包括如下几种: 1.edges_image: 提取2D 图像边缘 2.edges_sub_pix:提取2D图像亚像素边缘 3.edges_o ...
- opencv 不同边缘检测算子效果比较
# -*- coding: utf-8 -*- import cv2 as cv import numpy as np import matplotlib.pyplot as plt#读取图像 img ...
- 【opencv】19.图像边缘检测算子数学原理、像素一二阶导数的意义
1.像素一二阶导数的意义 下面导数是数学中的定义 一阶导数定义: { f ′ ( x ) = lim Δ x → 0 f ( x + Δ x ) − f ( x ) Δ x f ′ ( x ) = ...
- 几种边缘检测算子的比较Roberts,Sobel,Prewitt,LOG,Canny
from:https://blog.csdn.net/gdut2015go/article/details/46779251 边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中 ...
最新文章
- struts-dojo的使用
- LeetCode 1819. 序列中不同最大公约数的数目
- 开启Windows文件共享必须开启的两个服务
- 郑捷《机器学习算法原理与编程实践》学习笔记(第四章 推荐系统原理)(三)SVD...
- 阿里云java面试_20个高级Java面试题汇总
- Luogu4897 【模板】最小割树
- Linux sort命令浅析
- java rt.jar的源代码的位置
- 在Vmware中安装archlinux(2008.3core)的流程与心得
- Maven经验分享(一)安装部署
- 和利时HOLLYSYS MACS-K系列DCS介绍
- 程序猿都应学习的语言:看25张图学UML
- css3箭头水平淡入淡出
- 解密weblogic控制台账号密码
- cdc有哪些rapper_获谢帝推荐,合作Higher Brothers,CDC的rapper里竟还藏着这样一位狠角色...
- 剖析Unreal Engine超真实人类的渲染技术Part 3 - 毛发渲染及其它
- 打开cad图纸计算机打不开,电脑上CAD软件为何打不开?打开电脑CAD软件方法!
- Win10服务器配置环境变量 | import _ssl # if we can‘t import it, let the error propagate ImportError: DLL load
- 【STM32】7—通用定时器 时钟树学习
- 会议平板安卓系统下不能使用视频会议功能?要选配摄像头麦克风?
热门文章
- 如今,我们已经长大,
- IDEA常用快捷键(Windows)
- LDA: 从头到尾彻底理解LDA (Latent Dirichlet Allocation)
- python入门小项目-判断闰年的两种方法(含代码示例)
- 鸿蒙电脑系统运行exe,鸿蒙传说电脑版_电脑版鸿蒙传说下载「含模拟器」-华军软件园...
- 【云原生】K8s简介之什么是K8s
- MySQL之分库分表
- 搜索引擎免费登录入口
- android 集成高德地图打包后报 key-location Error, ErrCode:7 的问题
- 扩增子测序 查找引物是否去除