图像处理
不负韶华ღ
这个作者很懒,什么都没留下…
展开
-
图像的分割(五)
图像的分割之基于聚类的分割c-均值聚类(HCM)import numpy as npimport random# 返回随机的聚类中心def rand_center(img, c): centers = [] for i in range(c): rand_x = random.randint(0, img.shape[0]) rand_y = random.randint(0, img.shape[1])原创 2021-11-05 17:20:59 · 79 阅读 · 0 评论 -
图像的分割(四)
图像的分割之基于形态学分水岭的分割基于标记的形态学分水岭算法import cv2 as cvimport numpy as np# 标准形态学分水岭算法# 针对灰度图像,使用灰度值最低的像素点作为起始点,从起始点开始淹没# 基于标记的形态学分水岭算法# 使用灰度值最低的像素点作为起始点,也可以将相对较高的灰度值像素作为标记点,从标记点和起始点开始进行淹没img = cv.imread("watershed.jpg")原创 2021-10-30 16:36:13 · 103 阅读 · 0 评论 -
图像的分割(三)
基于区域的分割基于区域生长法的分割import numpy as npimport cv2 as cv# 区域生长法def region_growth(gray, seeds, thresh=15): # 采用8-邻域 connects = [(-1, -1), (0, -1), (1, -1), (1, 0), (1, 1), (0, 1), (-1, 1), (-1, 0)] height, width = gray.shape # 标记矩阵,标记所给生长点原创 2021-12-04 18:46:33 · 146 阅读 · 0 评论 -
图像的分割(二)
图像的分割之基于熵的分割一维最大熵分割import numpy as npimport math# 最大熵分割def max_entropy(img): # 概率数组 p = np.zeros(256, np.float32) rows, cols = img.shape # 统计各个灰度级的次数 for i in range(rows): for j in range(cols): p[img[i, j原创 2021-11-07 20:11:43 · 2703 阅读 · 0 评论 -
图像的分割(一)
图像的分割之基于边缘的分割图像的分割之边缘检测import cv2 as cvimport numpy as np# 边缘检测img = cv.imread("./image.jpg", cv.IMREAD_GRAYSCALE)# 梯度算子# 标准定义形式# g(x, y) ≈ |∂f(x, y)/∂x|+|∂f(x, y)/∂y|,其中原函数为f(x, y),处理后的函数为g(x, y)原创 2021-11-02 22:24:11 · 1378 阅读 · 0 评论 -
图像的增强(二)
图像增强之频域增强import cv2 as cvimport numpy as npimport math# 图像频域增强的方法(主要针对灰度图像)# 图像从空间域变换到频率域后,其低频分量对应图像中灰度变化比较缓慢的区域,高频分量对应物体的边缘和随机噪声等信息# 使用低通滤波,可以消除图像的随机噪声、减弱边缘效应,达到平滑图像的作用# 使用高通滤波,可以增强高频分量,使图像的边缘和线条更加清晰,实现图像的锐化img = cv.imread("./img.png", cv.IMREAD_原创 2021-11-02 09:43:53 · 929 阅读 · 0 评论 -
图像的增强(一)
图像增强之空域增强import cv2 as cvimport numpy as np# 图像空域增强的方法(主要针对灰度图像)img = cv.imread("./img.png", cv.IMREAD_GRAYSCALE)# 1、灰度线性变换增强# 2、直方图变换增强img_hist_equal = cv.equalizeHist(img)# 3、空域滤波增强# 邻域滤波(分为加权和不加权两种)# 第一种为不加权邻域滤波,这里使用一个3×3的全一数组作为窗口# 图像经处理后某一点原创 2021-11-02 09:45:44 · 1244 阅读 · 0 评论 -
图像的变换
图像变换import cv2 as cvimport numpy as npimg = cv.imread("img.png", cv.IMREAD_GRAYSCALE)rows, cols = img.shape# 平移# x方向移动100像素,y方向移动50像素M1 = np.array([[1, 0, 100], [0, 1, 50]], np.float32)img_shift = cv.warpAffine(img, M1, (cols, rows))# 旋转# 以程序左上角原创 2021-10-30 17:29:55 · 78 阅读 · 0 评论