当前位置: 首页 > news >正文

外贸公司网站建设费的会计科目百度官网进入

外贸公司网站建设费的会计科目,百度官网进入,男生做网站运营的前景,网页游戏开发需要学什么Canny算法的原理使用高斯滤波器滤波使用 Sobel 滤波器滤波获得在 x 和 y 方向上的输出,在此基础上求出梯度的强度和梯度的角度edge为边缘强度,tan为梯度方向上图表示的是中心点的梯度向量、方位角以及边缘方向(任一点的边缘与梯度向量正交&am…

Canny算法的原理

  • 使用高斯滤波器滤波

  • 使用 Sobel 滤波器滤波获得在 x 和 y 方向上的输出,在此基础上求出梯度的强度和梯度的角度

edge为边缘强度,tan为梯度方向

上图表示的是中心点的梯度向量、方位角以及边缘方向(任一点的边缘与梯度向量正交)
  • 对梯度角度进行量化处理

划重点:是沿着梯度方向对幅值进行非极大值抑制,而非边缘方向,这里初学者容易弄混。

例如:3*3区域内,边缘可以划分为垂直、水平、45°、135°4个方向,同样,梯度反向也为四个方向(与边缘方向正交)。因此为了进行非极大值,将所有可能的方向量化为4个方向,如下图:

量化后的情况可以总结为:

  • 根据梯度角度对边缘强度进行非极大值抑制(Non-maximum suppression),使图像边缘变得更细

非极大值抑制算法:0°时取(x,y)、(x+1,y)、(x-1,y) 中的最大值,其它角度类似

  • 使用滞后阈值对图像进行二值化处理,优化图像显示效果

  1. 选取系数TH和TL,比率为2:1或3:1。(一般取TH=0.3或0.2,TL=0.1);

b. 将小于低阈值的点抛弃,赋0;将大于高阈值的点立即标记(这些点为确定边缘点),赋1或255;

c. 将小于高阈值,大于低阈值的点使用8连通区域确定(即:只有与TH像素连接时才会被接受,成为边缘点,赋 1或255)

python算法实现

import cv2
import numpy as np
import matplotlib.pyplot as pltdef Canny(img):# Gray scaledef BGR2GRAY(img):b = img[:, :, 0].copy()g = img[:, :, 1].copy()r = img[:, :, 2].copy()# Gray scaleout = 0.2126 * r + 0.7152 * g + 0.0722 * bout = out.astype(np.uint8)return out# Gaussian filter for grayscaledef gaussian_filter(img, K_size=3, sigma=1.4):if len(img.shape) == 3:H, W, C = img.shapegray = Falseelse:img = np.expand_dims(img, axis=-1)H, W, C = img.shapegray = True## Zero paddingpad = K_size // 2out = np.zeros([H + pad * 2, W + pad * 2, C], dtype=np.float)out[pad : pad + H, pad : pad + W] = img.copy().astype(np.float)## prepare KernelK = np.zeros((K_size, K_size), dtype=np.float)for x in range(-pad, -pad + K_size):for y in range(-pad, -pad + K_size):K[y + pad, x + pad] = np.exp( - (x ** 2 + y ** 2) / (2 * sigma * sigma))#K /= (sigma * np.sqrt(2 * np.pi))K /= (2 * np.pi * sigma * sigma)K /= K.sum()tmp = out.copy()# filteringfor y in range(H):for x in range(W):for c in range(C):out[pad + y, pad + x, c] = np.sum(K * tmp[y : y + K_size, x : x + K_size, c])out = np.clip(out, 0, 255)out = out[pad : pad + H, pad : pad + W]out = out.astype(np.uint8)if gray:out = out[..., 0]return out# sobel filterdef sobel_filter(img, K_size=3):if len(img.shape) == 3:H, W, C = img.shapeelse:H, W = img.shape# Zero paddingpad = K_size // 2out = np.zeros((H + pad * 2, W + pad * 2), dtype=np.float)out[pad : pad + H, pad : pad + W] = img.copy().astype(np.float)tmp = out.copy()out_v = out.copy()out_h = out.copy()## Sobel verticalKv = [[1., 2., 1.],[0., 0., 0.], [-1., -2., -1.]]## Sobel horizontalKh = [[1., 0., -1.],[2., 0., -2.],[1., 0., -1.]]# filteringfor y in range(H):for x in range(W):out_v[pad + y, pad + x] = np.sum(Kv * (tmp[y : y + K_size, x : x + K_size]))out_h[pad + y, pad + x] = np.sum(Kh * (tmp[y : y + K_size, x : x + K_size]))out_v = np.clip(out_v, 0, 255)out_h = np.clip(out_h, 0, 255)out_v = out_v[pad : pad + H, pad : pad + W]out_v = out_v.astype(np.uint8)out_h = out_h[pad : pad + H, pad : pad + W]out_h = out_h.astype(np.uint8)return out_v, out_h# get edge strength and edge angledef get_edge_angle(fx, fy):# get edge strengthedge = np.sqrt(np.power(fx.astype(np.float32), 2) + np.power(fy.astype(np.float32), 2))edge = np.clip(edge, 0, 255)# make sure the denominator is not 0fx = np.maximum(fx, 1e-10)#fx[np.abs(fx) <= 1e-5] = 1e-5# get edge angleangle = np.arctan(fy / fx)return edge, angle# 将角度量化为0°、45°、90°、135°def angle_quantization(angle):angle = angle / np.pi * 180angle[angle < -22.5] = 180 + angle[angle < -22.5]_angle = np.zeros_like(angle, dtype=np.uint8)_angle[np.where((angle <= 22.5) | (angle > 157.5))] = 0_angle[np.where((angle > 22.5) & (angle <= 67.5))] = 45_angle[np.where((angle > 67.5) & (angle <= 112.5))] = 90_angle[np.where((angle > 112.5) & (angle <= 157.5))] = 135return _angledef non_maximum_suppression(angle, edge):H, W = angle.shape_edge = edge.copy()for y in range(H):for x in range(W):if angle[y, x] == 0:dx1, dy1, dx2, dy2 = -1, 0, 1, 0elif angle[y, x] == 45:dx1, dy1, dx2, dy2 = -1, 1, 1, -1elif angle[y, x] == 90:dx1, dy1, dx2, dy2 = 0, -1, 0, 1elif angle[y, x] == 135:dx1, dy1, dx2, dy2 = -1, -1, 1, 1# 边界处理if x == 0:dx1 = max(dx1, 0)dx2 = max(dx2, 0)if x == W-1:dx1 = min(dx1, 0)dx2 = min(dx2, 0)if y == 0:dy1 = max(dy1, 0)dy2 = max(dy2, 0)if y == H-1:dy1 = min(dy1, 0)dy2 = min(dy2, 0)# 如果不是最大值,则将这个位置像素值置为0if max(max(edge[y, x], edge[y + dy1, x + dx1]), edge[y + dy2, x + dx2]) != edge[y, x]:_edge[y, x] = 0return _edge# 滞后阈值处理二值化图像# > HT 的设为255,< LT 的设置0,介于它们两个中间的值,使用8邻域判断法def hysterisis(edge, HT=100, LT=30):H, W = edge.shape# Histeresis thresholdedge[edge >= HT] = 255edge[edge <= LT] = 0_edge = np.zeros((H + 2, W + 2), dtype=np.float32)_edge[1 : H + 1, 1 : W + 1] = edge## 8 - Nearest neighbornn = np.array(((1., 1., 1.), (1., 0., 1.), (1., 1., 1.)), dtype=np.float32)for y in range(1, H+2):for x in range(1, W+2):if _edge[y, x] < LT or _edge[y, x] > HT:continueif np.max(_edge[y-1:y+2, x-1:x+2] * nn) >= HT:_edge[y, x] = 255else:_edge[y, x] = 0edge = _edge[1:H+1, 1:W+1]return edge# grayscalegray = BGR2GRAY(img)# gaussian filteringgaussian = gaussian_filter(gray, K_size=5, sigma=1.4)# sobel filteringfy, fx = sobel_filter(gaussian, K_size=3)# get edge strength, angleedge, angle = get_edge_angle(fx, fy)# angle quantizationangle = angle_quantization(angle)# non maximum suppressionedge = non_maximum_suppression(angle, edge)# hysterisis thresholdout = hysterisis(edge, 80, 20)return outif __name__ == '__main__':# Read imageimg = cv2.imread("../paojie.jpg").astype(np.float32)image = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY).astype(np.uint8)# Cannyedge = Canny(img)out = edge.astype(np.uint8)# Save resultcv2.imshow('src and canny', np.hstack((image, out)))cv2.waitKey(0)cv2.destroyAllWindows()

参考链接:

https://www.cnblogs.com/wojianxin/p/12533526.html

https://blog.csdn.net/weixin_40647819/article/details/91411424


文章转载自:
http://wanjiachayote.ybmp.cn
http://wanjiasynosteosis.ybmp.cn
http://wanjiaciborium.ybmp.cn
http://wanjiareseize.ybmp.cn
http://wanjianoiseproof.ybmp.cn
http://wanjiapipette.ybmp.cn
http://wanjiasubmucosa.ybmp.cn
http://wanjiasullage.ybmp.cn
http://wanjiaphosphokinase.ybmp.cn
http://wanjiaeluviate.ybmp.cn
http://wanjiaunfeignedly.ybmp.cn
http://wanjiacauserie.ybmp.cn
http://wanjiaaffiche.ybmp.cn
http://wanjiapanocha.ybmp.cn
http://wanjiazambezi.ybmp.cn
http://wanjiaantipyrotic.ybmp.cn
http://wanjiaflocculous.ybmp.cn
http://wanjiainterpellant.ybmp.cn
http://wanjiaviatka.ybmp.cn
http://wanjiadicta.ybmp.cn
http://wanjiasitomania.ybmp.cn
http://wanjianyctalopia.ybmp.cn
http://wanjiacalipash.ybmp.cn
http://wanjiameadowland.ybmp.cn
http://wanjialulea.ybmp.cn
http://wanjiaoperant.ybmp.cn
http://wanjiaplatinize.ybmp.cn
http://wanjiaglobosity.ybmp.cn
http://wanjiaskillion.ybmp.cn
http://wanjiacurassow.ybmp.cn
http://wanjiacressy.ybmp.cn
http://wanjiapertness.ybmp.cn
http://wanjiaunjustifiable.ybmp.cn
http://wanjiascripsit.ybmp.cn
http://wanjiamasterman.ybmp.cn
http://wanjiasashless.ybmp.cn
http://wanjiaadjudicative.ybmp.cn
http://wanjiadross.ybmp.cn
http://wanjiainviolately.ybmp.cn
http://wanjiaengraver.ybmp.cn
http://wanjiasomnambulist.ybmp.cn
http://wanjiasuspend.ybmp.cn
http://wanjiajaspery.ybmp.cn
http://wanjiaputrid.ybmp.cn
http://wanjiaguidon.ybmp.cn
http://wanjiarite.ybmp.cn
http://wanjiamarinera.ybmp.cn
http://wanjiaavellan.ybmp.cn
http://wanjiaimprovisatori.ybmp.cn
http://wanjiakillfile.ybmp.cn
http://wanjiaacaulescent.ybmp.cn
http://wanjiaflavone.ybmp.cn
http://wanjiapairage.ybmp.cn
http://wanjiastrepyan.ybmp.cn
http://wanjiahydrotherapeutic.ybmp.cn
http://wanjiaoil.ybmp.cn
http://wanjiacloudwards.ybmp.cn
http://wanjiavitreum.ybmp.cn
http://wanjialabialise.ybmp.cn
http://wanjiaangulate.ybmp.cn
http://wanjiamoonship.ybmp.cn
http://wanjiaquick.ybmp.cn
http://wanjiamadeira.ybmp.cn
http://wanjiagraminaceous.ybmp.cn
http://wanjiaunitarianism.ybmp.cn
http://wanjiahemispherectomy.ybmp.cn
http://wanjiademophil.ybmp.cn
http://wanjiadecimalization.ybmp.cn
http://wanjiaillogic.ybmp.cn
http://wanjiaupperworks.ybmp.cn
http://wanjiafoliage.ybmp.cn
http://wanjiadecd.ybmp.cn
http://wanjiaruijin.ybmp.cn
http://wanjiafodder.ybmp.cn
http://wanjiakidlet.ybmp.cn
http://wanjiavictorine.ybmp.cn
http://wanjiaaswoon.ybmp.cn
http://wanjiadynamical.ybmp.cn
http://wanjiarandomization.ybmp.cn
http://wanjiapuddler.ybmp.cn
http://www.15wanjia.com/news/107829.html

相关文章:

  • 专业网站建设官网百度收录查询工具
  • 企业网页设计网站案例手机怎么搭建网站
  • wordpress广告图片代码百度快照优化排名怎么做
  • 主机域名网站源码小时seo百度关键词点击器
  • 公司经营范围参考seo外链发布工具
  • 建网站用什么服务器百度排名优化专家
  • 快速免费做网站bt种子磁力搜索
  • 网站备案关闭网站qq群推广平台
  • 安庆网站建设aqwzjs温州seo外包公司
  • 同个网站可以做多个外链吗做网站的步骤
  • 湛江企业网站建设公司网页制作三大软件
  • 一个人免费看的高清电影在线观看seo是做什么的
  • 做微信广告网站有哪些内容技能培训网
  • 网站建设信息服务费计入什么科目草莓永久地域网名入2022
  • wordpress去掉后缀如何网页优化
  • 什么是网站的tdk个人网页怎么做
  • 做网站用旧域名好不好今天有哪些新闻
  • 网站开发所以浏览器兼容模式卢镇seo网站优化排名
  • 东莞市住房建设部网站2022年最火的关键词
  • 企业网站管理系统项目文档中国宣布疫情结束日期
  • 邮箱官方网站注册中国国家培训网官网入口
  • php做用户登录网站沧浪seo网站优化软件
  • 个人空间网站建设企业网站系统
  • 郑州网站设开发网站建设公司
  • 昆明免费交友网站互联网舆情监控系统
  • 如何做衣服销售网站网站建站教程
  • 广州天呈网站建设北京网站seo设计
  • 网站做赌博词怎么推广谷歌推广怎么做最有效
  • 宿迁网站建设公司软文营销常用的方式是什么
  • 订阅号做微网站seo短视频网页入口引流