一、直方图相关学习

这篇具有很好参考价值的文章主要介绍了一、直方图相关学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、灰度直方图

1.1 基本概念和作用

表示图像中每个灰度级别的像素数量。用于分析图像的亮度分布情况。

1.2 代码示例

参数介绍

hist = cv2.calcHist(images, channels, mask, histSize, ranges, hist, accumulate)

-images:输入图像的列表。对于灰度图像,它只包含一个元素(即一幅图像)。对于彩色图像,通常会传入一个包含所有颜色通道的列表。
-channels:指定要统计直方图的通道。对于灰度图像,值为[0];对于彩色图像,可以传入[0][1][2]分别表示蓝、绿、红通道。如果是彩色图像,也可以同时统计多个通道,例如[0, 1, 2]表示统计所有通道。
-mask:可选参数,用于指定计算直方图的区域。如果不需要指定区域,传入None
-histSize:指定直方图的大小,即灰度级别的个数。对于灰度图像,通常设置为256,表示从0255的灰度级别。对于彩色图像,可以设置为256,表示每个通道的灰度级别。
-ranges:指定像素值的范围。通常为[0, 256],表示灰度级别的范围。对于彩色图像,例如[0, 256, 0, 256, 0, 256]表示三个通道各自的范围。
-hist:可选参数,用于存储计算得到的直方图。如果不提供,函数会返回直方图
-accumulate:

示例

import cv2
import matplotlib.pyplot as plt

# 读取图像
image = cv2.imread('../images/1.jpg', cv2.IMREAD_GRAYSCALE)

# 计算灰度直方图
hist = cv2.calcHist([image], [0], None, [256], [0, 256])

# 显示原图
plt.subplot(2, 1, 1)
plt.imshow(image, cmap='gray')
plt.title('Original Image')

# 显示灰度直方图
plt.subplot(2, 1, 2)
plt.plot(hist)
plt.title('Grayscale Histogram')
plt.xlabel('Pixel Value')
plt.ylabel('Frequency')

# 调整子图布局,避免重叠
plt.tight_layout()

# 显示图像和直方图
plt.show()

一、直方图相关学习,学习,opencv,计算机视觉

2、BGR直方图

2.1 基本概念和作用

BGR直方图是一种用于可视化彩色图像中蓝色(Blue)、绿色(Green)和红色(Red)三个通道的像素值分布情况的工具。了解图像中颜色的分布情况。通过分析BGR直方图,可以得知图像中某个颜色通道的强度,从而更好地理解图像的颜色特性。

2.2 代码示例

import cv2
import matplotlib.pyplot as plt

# 读取彩色图像
image = cv2.imread('../images/2.jpg')

# 分离通道
b, g, r = cv2.split(image)

# 计算各通道的直方图
hist_b = cv2.calcHist([b], [0], None, [256], [0, 256])
hist_g = cv2.calcHist([g], [0], None, [256], [0, 256])
hist_r = cv2.calcHist([r], [0], None, [256], [0, 256])

# 显示彩色图像
plt.subplot(2, 1, 1)
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.title('Original Image')

# 显示BGR直方图
plt.subplot(2, 1, 2)
plt.plot(hist_b, color='blue', label='Blue')
plt.plot(hist_g, color='green', label='Green')
plt.plot(hist_r, color='red', label='Red')
plt.title('BGR Histogram')
plt.xlabel('Pixel Value')
plt.ylabel('Frequency')
plt.legend()

# 调整子图布局,避免重叠
plt.tight_layout()
# 显示图像和直方图
plt.show()

一、直方图相关学习,学习,opencv,计算机视觉

3、灰度直方图均衡

1. 基本概念和作用

用于增强图像对比度的技术,通过调整图像中各个灰度级别的像素分布,使得整个灰度范围更均匀地覆盖,从而提高图像的视觉质量。这个过程可以使暗部和亮部细节更加清晰可见,改善图像的视觉效果。

2. 代码示例

import cv2
import matplotlib.pyplot as plt

# 读取灰度图像
image = cv2.imread('../images/3.jpg', cv2.IMREAD_GRAYSCALE)

# 进行灰度直方图均衡
equalized_image = cv2.equalizeHist(image)

# 显示原始灰度图像
plt.subplot(2, 1, 1)
plt.imshow(image, cmap='gray')
plt.title('Original Grayscale Image')

# 显示均衡后的灰度图像
plt.subplot(2, 1, 2)
plt.imshow(equalized_image, cmap='gray')
plt.title('Equalized Grayscale Image')

# 调整子图布局,避免重叠
plt.tight_layout()

# 显示图像
plt.show()

一、直方图相关学习,学习,opencv,计算机视觉

4、直方图变换(查找)

4.1 基本概念和作用

直方图变换,也称为直方图查找,是一种用于调整图像对比度的技术。它通过变换图像的灰度级别,将原始图像的灰度分布均匀化,使得图像中所有灰度级别的像素值分布更加平均。这样可以增强图像的对比度,使细节更加突出,提高图像的视觉质量。
直方图变换的核心思想是调整图像中各个灰度级别的像素值,使得灰度值的分布更均匀,从而实现对比度的增强。

4.2 代码示例

import cv2
import numpy as np
import matplotlib.pyplot as plt

# 读取图像
img = cv2.imread('../images/4.jpg', cv2.IMREAD_GRAYSCALE)

# 计算原始图像的直方图
hist = cv2.calcHist([img], [0], None, [256], [0, 256])

# 显示原始图像和直方图
plt.subplot(2, 2, 1), plt.imshow(img, cmap='gray'), plt.title('Original Image')
plt.subplot(2, 2, 2), plt.plot(hist), plt.title('Original Histogram')

# 构建查找表,每个像素值增加50
lookup_table = np.arange(256, dtype=np.uint8)
lookup_table = cv2.add(lookup_table, 50)

# 应用查找表
transformed_img = cv2.LUT(img, lookup_table)

# 计算变换后图像的直方图
transformed_hist = cv2.calcHist([transformed_img], [0], None, [256], [0, 256])

# 显示变换后图像和直方图
plt.subplot(2, 2, 3), plt.imshow(transformed_img, cmap='gray'), plt.title('Transformed Image')
plt.subplot(2, 2, 4), plt.plot(transformed_hist), plt.title('Transformed Histogram')

plt.show()


图片中每个像素都增加五十个像素的效果
一、直方图相关学习,学习,opencv,计算机视觉

5、直方图匹配

5.1 基本概念和作用

通过调整图像的像素值,使其直方图匹配到另一图像的直方图,以实现两者视觉特性的一致性。在图像配准、图像融合等应用

5.2 代码示例

import cv2
import matplotlib.pyplot as plt
import numpy as np

def hist_match(source, target):
    # 将源图像和目标图像转换为灰度图
    source_gray = cv2.cvtColor(source, cv2.COLOR_BGR2GRAY)
    target_gray = cv2.cvtColor(target, cv2.COLOR_BGR2GRAY)

    # 计算源图像和目标图像的直方图
    source_hist = cv2.calcHist([source_gray], [0], None, [256], [0, 256])
    target_hist = cv2.calcHist([target_gray], [0], None, [256], [0, 256])

    # 直方图归一化
    cv2.normalize(source_hist, source_hist, 0, 255, cv2.NORM_MINMAX)
    cv2.normalize(target_hist, target_hist, 0, 255, cv2.NORM_MINMAX)

    # 计算累积分布函数(CDF)
    source_cdf = source_hist.cumsum()
    target_cdf = target_hist.cumsum()

    # 映射源图像的像素值到目标图像的CDF
    mapping = np.interp(source_cdf, target_cdf, range(256))

    # 应用映射到源图像
    matched_gray = cv2.LUT(source_gray, mapping.astype('uint8'))

    # 将灰度匹配的结果应用到RGB图像上
    matched_img = source.copy()
    for i in range(3):
        matched_img[:, :, i] = cv2.LUT(source[:, :, i], mapping.astype('uint8'))

    return matched_img

# 读取源图像和目标图像
source_img = cv2.imread('../images/5-2.jpg')
target_img = cv2.imread('../images/5-1.jpg')

# 进行直方图匹配
matched_img = hist_match(source_img, target_img)

# 显示图像
plt.figure(figsize=(12, 6))

plt.subplot(1, 3, 1), plt.imshow(cv2.cvtColor(source_img, cv2.COLOR_BGR2RGB)), plt.title('source (RGB)')
plt.subplot(1, 3, 2), plt.imshow(cv2.cvtColor(target_img, cv2.COLOR_BGR2RGB)), plt.title('target (RGB)')
plt.subplot(1, 3, 3), plt.imshow(cv2.cvtColor(matched_img, cv2.COLOR_BGR2RGB)), plt.title('result (RGB)')

plt.show()

一、直方图相关学习,学习,opencv,计算机视觉

6、直方图反向映射

6.1 基本概念和作用

通过调整图像的像素值,使其直方图反向匹配到目标直方图,从而实现对比度和亮度的调整。直方图模型去目标图像中寻找相似的特征对象

6.2 代码示例

import cv2
import matplotlib.pyplot as plt
import numpy as np

def hist_reverse_mapping(source, target):
    # 将源图像和目标图像转换为灰度图
    source_gray = cv2.cvtColor(source, cv2.COLOR_BGR2GRAY)
    target_gray = cv2.cvtColor(target, cv2.COLOR_BGR2GRAY)

    # 计算源图像和目标图像的直方图
    source_hist = cv2.calcHist([source_gray], [0], None, [256], [0, 256])
    target_hist = cv2.calcHist([target_gray], [0], None, [256], [0, 256])

    # 直方图归一化
    cv2.normalize(source_hist, source_hist, 0, 1, cv2.NORM_MINMAX)
    cv2.normalize(target_hist, target_hist, 0, 1, cv2.NORM_MINMAX)

    # 计算反向映射
    mapping = np.interp(np.linspace(0, 1, 256), target_hist.flatten(), np.arange(256))

    # 应用反向映射到源图像
    mapped_img = cv2.LUT(source_gray, mapping.astype('uint8'))

    # 将灰度映射的结果应用到RGB图像上
    mapped_color_img = source.copy()
    for i in range(3):
        mapped_color_img[:, :, i] = cv2.LUT(source[:, :, i], mapping.astype('uint8'))

    return mapped_color_img

# 读取源图像和目标图像
source_img = cv2.imread('../images/5-2.jpg')
target_img = cv2.imread('../images/5-1.jpg')

# 进行直方图反向映射
mapped_img = hist_reverse_mapping(source_img, target_img)

# 显示图像
plt.figure(figsize=(12, 6))

plt.subplot(1, 3, 1), plt.imshow(cv2.cvtColor(source_img, cv2.COLOR_BGR2RGB)), plt.title('source (RGB)')
plt.subplot(1, 3, 2), plt.imshow(cv2.cvtColor(target_img, cv2.COLOR_BGR2RGB)), plt.title('target (RGB)')
plt.subplot(1, 3, 3), plt.imshow(cv2.cvtColor(mapped_img, cv2.COLOR_BGR2RGB)), plt.title('resource (RGB)')

plt.show()

一、直方图相关学习,学习,opencv,计算机视觉

7、H-S直方图

7.1 基本概念和作用

用于表示图像颜色分布的直方图。它基于图像中每个像素的色调(Hue)和饱和度(Saturation)信息,通过统计这两个颜色属性的分布情况,形成直方图。H-S直方图是在颜色空间中对颜色特征进行可视化和分析的工具。应用于在颜色分析、图像检索和目标识别等

7.2 示例代码

import cv2
import numpy as np
import matplotlib.pyplot as plt

def compute_hs_histogram(image):
    # 将图像从BGR颜色空间转换为HSV颜色空间
    hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

    # 提取Hue和Saturation通道
    hue_channel = hsv_image[:,:,0]
    saturation_channel = hsv_image[:,:,1]

    # 计算Hue-Saturation直方图
    hs_histogram, _, _ = np.histogram2d(hue_channel.flatten(), saturation_channel.flatten(), bins=[180, 256], range=[[0, 180], [0, 256]])

    # 归一化直方图
    hs_histogram /= hs_histogram.sum()

    return hs_histogram

# 读取图像
image = cv2.imread('../images/4.jpg')

# 计算H-S直方图
hs_histogram = compute_hs_histogram(image)

# 显示H-S直方图
plt.imshow(hs_histogram.T, cmap='viridis', extent=[0, 180, 0, 256], interpolation='nearest')
plt.title('H-S Histogram')
# 色调
plt.xlabel('Hue')
# 饱和度
plt.ylabel('Saturation')
plt.colorbar()
plt.show()

一、直方图相关学习,学习,opencv,计算机视觉

8、自定义直方图

8.1 mask

# 1 导入库
import cv2
import matplotlib.pyplot as plt
import numpy as np

# 2 方法:显示图片
def show_image(image, title, pos):
    img_RGB = image[:, :, ::-1] # BGR to RGB
    plt.title(title)
    plt.subplot(2, 2, pos)
    plt.imshow(img_RGB)

# 3 方法:显示灰度直方图
def show_histogram(hist, title, pos, color):
    plt.subplot(2, 2, pos)
    plt.title(title)
    plt.xlim([0, 256])
    plt.plot(hist, color=color)

# 4 主函数
def main():
    # 5 创建画布
    plt.figure(figsize=(12, 7))
    plt.suptitle("Gray Image and Histogram with mask", fontsize=4, fontweight="bold")

    # 6 读取图片并灰度转换,计算直方图,显示
    img_gray = cv2.imread("../images/children.jpg", cv2.COLOR_BGR2GRAY) # 读取并进行灰度转换
    img_gray_hist = cv2.calcHist([img_gray], [0], None, [256], [0, 256]) # 计算直方图
    show_image(img_gray, "image gray", 1)
    show_histogram(img_gray_hist, "image gray histogram", 2, "m")

    # 7 创建mask,计算位图,直方图
    mask = np.zeros(img_gray.shape[:2], np.uint8)
    mask[130:500, 600:1400] = 255 # 获取mask,并赋予颜色
    img_mask_hist = cv2.calcHist([img_gray], [0], mask, [256], [0, 256]) # 计算mask的直方图

    # 8 通过位运算(与预算)计算带有mask的灰度图片
    mask_img = cv2.bitwise_and(img_gray, img_gray, mask = mask)

    # 9 显示带有mask的图片和直方图
    show_image(mask_img, "gray image with mask", 3)
    show_histogram(img_mask_hist, "histogram with masked gray image", 4, "m")

    plt.show()
if __name__ == '__main__':
    main()

一、直方图相关学习,学习,opencv,计算机视觉

9、彩色直方图均衡

示例代码

import cv2
import matplotlib.pyplot as plt
import numpy as np

# 显示图片
def show_image(image, title, pos):
    plt.subplot(3, 2, pos)
    plt.title(title)
    image_RGB = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)  # BGR to RGB
    plt.imshow(image_RGB)
    plt.axis("off")

# 显示彩色直方图 b, g, r
def show_histogram(hist, title, pos, color):
    plt.subplot(3, 2, pos)
    plt.title(title)
    plt.xlim([0, 256])
    for h, c in zip(hist, color):  # color: ('b', 'g', 'r')
        plt.plot(h, color=c)

# 计算彩色直方图
def calc_color_hist(image):
    hist = []
    hist.append(cv2.calcHist([image], [0], None, [256], [0, 256]))
    hist.append(cv2.calcHist([image], [1], None, [256], [0, 256]))
    hist.append(cv2.calcHist([image], [2], None, [256], [0, 256]))
    return hist

# 彩色直方图均衡化
def color_histogram_equalization(image):
    # 将图像从BGR颜色空间转换为YUV颜色空间
    yuv_image = cv2.cvtColor(image, cv2.COLOR_BGR2YUV)

    # 对亮度通道进行直方图均衡化
    yuv_image[:, :, 0] = cv2.equalizeHist(yuv_image[:, :, 0])

    # 将图像从YUV颜色空间转换回BGR颜色空间
    equalized_image = cv2.cvtColor(yuv_image, cv2.COLOR_YUV2BGR)

    return equalized_image

# 主函数
def main():
    # 创建画布
    plt.figure(figsize=(12, 8))
    plt.suptitle("Color Histogram and Equalization", fontsize=14, fontweight="bold")

    # 读取原图片
    img = cv2.imread("../images/children.jpg")

    # 计算原始直方图
    img_hist = calc_color_hist(img)

    # 显示原始图片和直方图
    show_image(img, "RGB Image", 1)
    show_histogram(img_hist, "RGB Image Hist", 2, ('b', 'g', 'r'))

    # 彩色直方图均衡化
    equalized_img = color_histogram_equalization(img)
    equalized_img_hist = calc_color_hist(equalized_img)

    # 显示均衡化后的图片和直方图
    show_image(equalized_img, 'Equalized Image', 3)
    show_histogram(equalized_img_hist, 'Equalized Image Hist', 4, ('b', 'g', 'r'))

    plt.show()

if __name__ == '__main__':
    main()

一、直方图相关学习,学习,opencv,计算机视觉

10、直方图变换(累计)

10.1 基本概念和作用

对图像的像素值进行累积,在直方图中,累积表示了某个像素值及其以下的像素值的总和。
累积直方图可以用以下步骤来计算:
-计算原始直方图(直方图中每个 bin 的值)。
-对原始直方图进行累加操作,得到累积直方图。

10.2 示例代码

import cv2
import matplotlib.pyplot as plt
import numpy as np


# 显示图片
def show_image(image, title, pos):
    plt.subplot(4, 2, pos)
    plt.title(title)
    image_RGB = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)  # BGR to RGB
    plt.imshow(image_RGB)
    plt.axis("off")


# 显示彩色直方图 b, g, r
def show_histogram(hist, title, pos, color):
    plt.subplot(4, 2, pos)
    plt.title(title)
    plt.xlim([0, 256])
    for h, c in zip(hist, color):  # color: ('b', 'g', 'r')
        plt.plot(h, color=c)


# 计算彩色直方图
def calc_color_hist(image):
    hist = []
    hist.append(cv2.calcHist([image], [0], None, [256], [0, 256]))
    hist.append(cv2.calcHist([image], [1], None, [256], [0, 256]))
    hist.append(cv2.calcHist([image], [2], None, [256], [0, 256]))
    return hist


# 计算累积直方图
def calc_cumulative_hist(hist):
    cumulative_hist = [np.cumsum(channel_hist) for channel_hist in hist]
    return cumulative_hist


# 主函数
def main():
    # 创建画布
    plt.figure(figsize=(12, 16))
    plt.suptitle("Color Histogram, Equalization, and Cumulative Histogram", fontsize=14, fontweight="bold")

    # 读取原图片
    img = cv2.imread("../images/children.jpg")

    # 计算原始直方图
    img_hist = calc_color_hist(img)

    # 显示原始图片和直方图
    show_image(img, "RGB Image", 1)
    show_histogram(img_hist, "RGB Image Hist", 2, ('b', 'g', 'r'))

    # 计算并显示累积直方图
    cumulative_hist = calc_cumulative_hist(img_hist)
    show_histogram(cumulative_hist, 'Cumulative Histogram', 4, ('b', 'g', 'r'))

    plt.show()


if __name__ == '__main__':
    main()

一、直方图相关学习,学习,opencv,计算机视觉

11、直方图对比

11.1 基本概念和作用

比较两幅图像的直方图来评估它们相似性的方法。基本原理是比较图像的颜色或灰度分布。

11.2 示例代码

一、直方图相关学习,学习,opencv,计算机视觉
Histogram Compare Result: 0.8173332006305307文章来源地址https://www.toymoban.com/news/detail-835701.html

import cv2
import matplotlib.pyplot as plt
import numpy as np

# 显示图片
def show_image(image, title, pos):
    plt.subplot(4, 2, pos)
    plt.title(title)
    image_RGB = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    plt.imshow(image_RGB)
    plt.axis("off")

# 显示彩色直方图 b, g, r
def show_histogram(hist, title, pos, color):
    plt.subplot(4, 2, pos)
    plt.title(title)
    plt.xlim([0, 256])
    for h, c in zip(hist, color):  # color: ('b', 'g', 'r')
        plt.plot(h, color=c)

# 计算彩色直方图
def calc_color_hist(image):
    hist = []
    hist.append(cv2.calcHist([image], [0], None, [256], [0, 256]))
    hist.append(cv2.calcHist([image], [1], None, [256], [0, 256]))
    hist.append(cv2.calcHist([image], [2], None, [256], [0, 256]))
    return hist



# 直方图比较
def histogram_compare(image1, image2):
    hist1 = cv2.calcHist([image1], [0, 1, 2], None, [256, 256, 256], [0, 256, 0, 256, 0, 256])
    hist2 = cv2.calcHist([image2], [0, 1, 2], None, [256, 256, 256], [0, 256, 0, 256, 0, 256])

    # 使用巴氏距离进行直方图比较
    result = cv2.compareHist(hist1, hist2, cv2.HISTCMP_BHATTACHARYYA)
    return result

# 主函数
def main():
    # 读取图片1
    img1 = cv2.imread("../images/11-1.jpg")

    # 读取图片2
    img2 = cv2.imread("../images/11-2.jpg")

    # 显示图片1
    show_image(img1, "Image 1", 1)

    # 计算并显示图片1的直方图
    img1_hist = calc_color_hist(img1)
    show_histogram(img1_hist, "Image 1 Hist", 2, ('b', 'g', 'r'))

    # 显示图片2
    show_image(img2, "Image 2", 5)

    # 计算并显示图片2的直方图
    img2_hist = calc_color_hist(img2)
    show_histogram(img2_hist, "Image 2 Hist", 6, ('b', 'g', 'r'))


    # 直方图比较
    hist_compare_result = histogram_compare(img1, img2)
    print(f"Histogram Compare Result: {hist_compare_result}")

    plt.show()

if __name__ == '__main__':
    main()

到了这里,关于一、直方图相关学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【opencv】教程代码 —Histograms_Matching(2)计算直方图、直方图比较、直方图均衡、模板匹配...

    计算直方图 直方图比较 图像进行直方图均衡化处理 模板匹配 1. calcHist_Demo.cpp 计算直方图 这段代码的功能是加载图像,分离图像的三个颜色通道,然后分别计算这三个通道的直方图,绘制出来并显示结果。直方图是图像中像素值分布的图形表示,可以用于图像分析或图像处

    2024年04月11日
    浏览(51)
  • OpenCV:图像直方图计算

    图像直方图为图像中像素强度的分布提供了有价值的见解。通过了解直方图,你可以获得有关图像对比度、亮度和整体色调分布的信息。这些知识对于图像增强、图像分割和特征提取等任务非常有用。 本文旨在为学习如何使用 OpenCV 执行图像直方图计算提供清晰且全面的指南

    2024年02月16日
    浏览(66)
  • 一、直方图相关学习

    表示图像中每个灰度级别的像素数量。用于分析图像的亮度分布情况。 参数介绍 示例 B GR直方图 是一种用于可视化彩色图像中蓝色(Blue)、绿色(Green)和红色(Red)三个通道的像素值分布情况的工具。了解图像中颜色的分布情况。通过分析BGR直方图,可以得知图像中某个

    2024年02月22日
    浏览(36)
  • python opencv 图片缺陷检测(讲解直方图以及相关系数对比法)

    2.1灰度转换(将原图和要检测对比的图分开灰度化) 灰度化的作用是因为后面的直方图比较需要以像素256为基准进行相关性比较 2.2 直方图计算(结果其实是二维的图表–用画图的方式展示) 第一个参数: 必须为列表[],哪怕只有一个图片 ,image输入图像 channels::传入图像的

    2024年01月23日
    浏览(46)
  • calHist()-使用OpenCV和C++计算直方图

    在计算机视觉中,几乎处处都使用直方图。对于阈值计算,我们使用灰度直方图。对于白平衡,我们使用直方图。对于图片中的对象跟踪,比如CamShift技术,我们使用颜色直方图,采用颜色直方图作为特征。 在更抽象的意义上,从梯度直方图形成 HOG 和 SIFT 描述符。 直方图也

    2024年01月17日
    浏览(58)
  • OpenCV官方教程中文版 —— 直方图的计算,绘制与分析

    • 使用 OpenCV 或 Numpy 函数计算直方图 • 使用 Opencv 或者 Matplotlib 函数绘制直方图 • 将要学习的函数有:cv2.calcHist(),np.histogram() 什么是直方图呢?通过直方图你可以对整幅图像的灰度分布有一个整体的了解。直方图的 x 轴是灰度值(0 到 255),y 轴是图片中具有同一个灰度

    2024年02月06日
    浏览(47)
  • 学习笔记:Opencv实现限制对比度得自适应直方图均衡CLAHE

    2023.8.19 为了完成深度学习的进阶,得学习学习传统算法拓展知识面,记录自己的学习心得 CLAHE百科: 一种限制对比度自适应直方图均衡化方法,采用了限制直方图分布的方法和加速的插值方法 clahe(限制对比度自适应直方图均衡化)_J先生x的博客-CSDN博客  在环境配置中要配

    2024年02月12日
    浏览(41)
  • OpenCV10-图像直方图:直方图绘制、直方图归一化、直方图比较、直方图均衡化、直方图规定化、直方图反射投影

    图像直方图就是统计图像中每个灰度值的个数,之后将灰度值作为横轴,以灰度值个数或者灰度值所占比率作为纵轴的统计图。通过直方图,可以看出图像中哪些灰度值数目较多,哪些较少,可以通过一定的方法将灰度值较为集中的区域映射到较为稀疏的区域,从而使图像在

    2024年01月16日
    浏览(53)
  • 【OpenCV • c++】自定义直方图 | 灰度直方图均衡 | 彩色直方图均衡

      直方图广泛应用于很多计算机视觉处理当中。通过标记帧与帧之间显著的边缘和颜色的变化,可以检测视频中的场景变化。在每个兴趣点设置一个有相似特征的直方图所构成的“标签”,可以用来标记各种不同的事情,比如图像的色彩分布,物体边缘梯度模板等等。是计

    2024年02月08日
    浏览(52)
  • opencv-2D直方图

    cv2.calcHist() 是 OpenCV 中用于计算直方图的函数。它可以计算一维或多维直方图,用于分析图像中像素值的分布。 基本的语法如下: 参数说明: images : 输入图像, 可以是单通道或多通道图像 。在计算多通道图像的直方图时,要将通道分别传递给 channels 参数。 channels : 要考虑

    2024年02月20日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包