Matplotlib——颜色名与RGB对应关系

cnames = {
   
   
'aliceblue':            '#F0F8FF',
'antiquewhite':         '#FAEBD7',
'aqua':                 '#00FFFF',
'aquamarine':           '#7FFFD4',
'azure':                '#F0FFFF',
'beige':                '#F5F5DC',
'bisque':               '#FFE4C4',
'black':                '#000000',
'blanchedalmond':       '#FFEBCD',
'blue':                 '#0000FF',
'blueviolet':           '#8A2BE2',
'brown':                '#A52A2A',
'burlywood':            '#DEB887',
'cadetblue':            '#5F9EA0',
'chartreuse':           '#7FFF00',
'chocolate':            '#D2691E',
'coral':                '#FF7F50',
'cornflowerblue':       '#6495ED',
'cornsilk':             '#FFF8DC',
'crimson':              '#DC143C',
'cyan':                 '#00FFFF',
'darkblue':             '#00008B',
'darkcyan':             '#008B8B',
'darkgoldenrod':        '#B8860B',
'darkgray':             '#A9A9A9',
'darkgreen':            '#006400',
'darkkhaki':            '#BDB76B',
'darkmagenta':          
### Harris角点检测算子Sobel边缘检测算子的区别 #### 区别 1. **目的不同** - Sobel边缘检测主要用于计算图像梯度,从而突出显示图像中的边界位置。该算子通过卷积核来近似一阶导数,用于识别灰度变化剧烈的地方作为边缘[^1]。 - Harris角点检测旨在定位那些具有显著方向性和稳定性的特征点——即角点。这些点通常位于两个或多个高对比度边界的交界处,在计算机视觉应用中非常重要。 2. **工作原理差异** - Sobel算子利用一对3×3大小的模板分别沿X轴和Y轴方向扫描整个输入图片,并据此估计像素强度的变化率;最终得到的结果可以用来构建一幅只保留了轮廓信息的新图象。 - Harris方法则依赖于自相关矩阵(Auto-correlation Matrix),通过对局部窗口内各向同性响应程度进行量化分析,进而判断某一点是否属于角点。具体来说就是当某个区域内的纹理结构呈现出明显的双峰特性时,则认为此处存在潜在的兴趣点[^3]。 3. **输出形式有异** - 使用Sobel滤波器处理后的输出是一张强调了物体外形轮廓的地图; - 而经由Harris探测到的是离散分布的关键节点集合,它们往往对应着场景里较为独特且易于匹配的目标部位。 #### 联系 尽管两者在功能上有所区别,但在实际操作过程中却存在着紧密关联: - 许多实现版本会先采用像Sobel这样的简单快速的方法来进行初步筛选,之后再运用更复杂的Harris测试进一步确认哪些候选者真正具备成为可靠地标的价值。这是因为前者能高效地缩小搜索范围并提供必要的梯度信息给后者使用[^2]。 - 此外,某些改进型算法可能会融合这两种技术的优点,比如结合Sobel产生的梯度幅值以及Harris定义的质量因子R共同决定最佳特征点的位置。 ```python import cv2 import numpy as np from matplotlib import pyplot as plt def show_images(images, titles=None): n = len(images) fig, axs = plt.subplots(1, n, figsize=(n*5, 5)) for i in range(n): ax = axs[i] ax.imshow(cv2.cvtColor(images[i], cv2.COLOR_BGR2RGB)) if titles is not None and i < len(titles): ax.set_title(titles[i]) ax.axis('off') img = cv2.imread('example.jpg', 0) # 应用 Sobel 边缘检测 sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5) # X 方向 sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5) # Y 方向 # 应用 Harris 角点检测 gray = np.float32(img) dst = cv2.cornerHarris(gray, blockSize=2, ksize=3, freeParameter=0.04) dst = cv2.dilate(dst,None) ret, dst = cv2.threshold(dst,0.01*dst.max(),255,0) dst = np.uint8(dst) show_images([cv2.merge((img,img,img)), sobelx, sobely, dst], ['Original Image','Sobel (X)','Sobel (Y)', 'Harris Corners']) plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值