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

图像分割各种算子算法-可直接使用(Canny、Roberts、Sobel)

Canny算子:

import numpy as np
import cv2 as cv
from matplotlib import pyplot as pltimg = cv.imread("../test_1_1.png")
edges = cv.Canny(img, 100, 200)plt.subplot(121),plt.imshow(img,cmap = 'gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(edges,cmap = 'gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])plt.show()

Roberts算子:

import cv2
import numpy as np
import matplotlib.pyplot as plt
# 用来正常显示中文标签
plt.rcParams['font.sans-serif'] = ['SimHei']img = cv2.imread(r'../test_1_1.png')
img_RGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) #转成RGB 方便后面显示
# 灰度化处理图像
grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 自定义Roberts算子
kernelx = np.array([[-1, 0], [0, 1]], dtype=int)
kernely = np.array([[0, -1], [1, 0]], dtype=int)
x = cv2.filter2D(grayImage, cv2.CV_16S, kernelx)
y = cv2.filter2D(grayImage, cv2.CV_16S, kernely)
# 转uint8
absX = cv2.convertScaleAbs(x)
absY = cv2.convertScaleAbs(y)
#按照相同的权重相加
Roberts = cv2.addWeighted(absX, 0.5, absY, 0.5, 0)
# 显示图形
plt.subplot(121),plt.imshow(img_RGB),plt.title('原始图像'), plt.axis('off') #坐标轴关闭
plt.subplot(122),plt.imshow(Roberts, cmap=plt.cm.gray ),plt.title('Roberts算子'), plt.axis('off')
plt.show()

Sobel算子:

# 边缘检测(Sobel、Laplace、Canny)
import cv2 as cv# Sobel一阶微分算子
def Sobel():# 1、对X和Y方向求微分x = cv.Sobel(img, cv.CV_16S, 1, 0)y = cv.Sobel(img, cv.CV_16S, 0, 1)#深度      x方向阶数 y方向阶数# 2、取绝对值absX = cv.convertScaleAbs(x)  # 转回uint8absY = cv.convertScaleAbs(y)# 3、线性混合dst = cv.addWeighted(absX, 0.5, absY, 0.5, 0)#                          比例       比例  常数# 4、显示# cv.imshow("absX", absX)# cv.imshow("absY", absY)cv.imshow("dst", dst)
if __name__ == '__main__':# 读取图片img = cv.imread("../test_1_4.png")#cv.imshow("img", img)Sobel()  # Sobel一阶微分算子cv.waitKey(0)

http://www.lryc.cn/news/346957.html

相关文章:

  • Spring Boot进阶 - 实现自动装配原理
  • 面向电商家居行业3D室内场景合成中的空间感知
  • ERROR 1045 (28000) Access denied for user ‘root‘@‘IP‘(using password YES/NO)
  • verilog $test$plusargs和$value$plusargs
  • Linux设置open files
  • Linux下安装JDK并配置环境变量
  • 擎天科技与禅道合作,打造统一的项目管理平台
  • ansible报错解决:Failed to import the required Python library (netaddr)
  • 盛邦安全拟战略收购卫星通信加密厂商天御云安
  • iOS MRC那句话
  • macOS DOSBox 汇编环境搭建
  • Python深度学习基于Tensorflow(1)Numpy基础
  • 体验GM CHM Reader Pro,享受高效阅读
  • 校园网拨号上网环境下多开虚拟机,实现宿主机与虚拟机互通,并访问外部网络
  • cpu常用命令
  • Vue3实战笔记(06)--- Axios 基本用法
  • 使用单片机在图形点阵LCD上绘制波形图
  • 生信人写程序1. Perl语言模板及配置
  • 【Android】Kotlin学习之数据容器 -- 集合
  • 超详细 springboot 整合 Mock 进行单元测试!本文带你搞清楚!
  • 国产操作系统下Chrome的命令行使用 _ 统信 _ 麒麟
  • linux性能监控之slabtop
  • Allure 在 Python 中的安装与使用
  • python实现动态时钟功能
  • QueryPerformanceCounter实现高精度uS(微妙)延时
  • Logstash详解
  • QT设计模式:适配器模式
  • 开发规范相关
  • C++ 容器(五)——Set操作
  • 【数字IC设计】芯片设计中的RDC