首页 > 其他分享 >OpenCV 图像直方图

OpenCV 图像直方图

时间:2024-08-18 10:58:07浏览次数:13  
标签:plt image hist OpenCV 直方图 图像 256 cv

在这里插入图片描述

一:直方图的直接使用
from matplotlib import pyplot as plt
def plot_demo(image):
print(image.ravel())
plt.hist(image.ravel(),256,[0,256]) #ravel将图像3维转一维数组,便于统计频率
# 统计为256个bin,显示0-256bin,意思是全部显示,我们可以设置只显示一部分
plt.show()

src = cv.imread("./1.png")  #读取图片
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)    #创建GUI窗口,形式为自适应
cv.imshow("input image",src)    #通过名字将图像和窗口联系
image_hist(src)
cv.waitKey(0)   #等待用户操作,里面等待参数是毫秒,我们填写0,代表是永远,等待用户操作
cv.destroyAllWindows()  #销毁所有窗口

在这里插入图片描述

二:联系OpenCV使用直方图

def image_hist(image):
    color = ("blue","green","red")
    for i,color in enumerate(color):
        hist = cv.calcHist([image],[i],None,[256],[0,256])
        plt.plot(hist,color=color)  #传入直方图数据,设置显示颜色
        plt.xlim([0,256])   #设定图标的上下限,默认是全选,可不用设置
    plt.show()

1.def calcHist(images, channels, mask, histSize, ranges, hist=None, accumulate=None): # real signature unknown; restored from doc

images:输入图像
channels:需要统计直方图的第几通道
mask:掩膜,,计算掩膜内的直方图  ...Mat()
histSize:指的是直方图分成多少个区间,就是 bin的个数
ranges: 统计像素值得区间
hist:输出的直方图数组
accumulate=false:在多个图像时,是否累计计算像素值得个数

在这里插入图片描述

根据直方图的波峰可以判断图像的主要特征,可以用于图像的分割,根据各个波峰
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

标签:plt,image,hist,OpenCV,直方图,图像,256,cv
From: https://blog.csdn.net/m0_37302966/article/details/141276708

相关文章

  • OpenCV 边缘保留滤波EPF
    OpenCV经典的两种实现EPF方法:高斯双边和均值迁移一:双边模糊差异越大,越会完整保留defbi_demo(image):dst=cv.bilateralFilter(image,0,100,15)#第二个参数d是distinct,我们若是输入了d,会根据其去算第3或4个参数,我们最好是使用第3或4个参数反算d,先设为0cv......
  • 一个简单的Rtmp推流客户端(QT录音,OpenCV摄像,FFmpeg编码推流)
            RTMP(Real-TimeMessagingProtocol)是一种实时流媒体传输协议,常用于音视频直播。        RTMP推流客户端是一种能够将音视频数据推送到直播服务器的工具。QT录音是利用Qt库实现的录音功能。OpenCV摄像是利用OpenCV库实现的对摄像头的控制和图像处理功......
  • 图像边缘提取系统设计
    一、设计依据在掌握数字图像处理基本算法的基础上,利用MATLAB、VC++、Python等编程语言设计具有指定功能的图形用户界面。 二、设计内容1、设计一个实现图像边缘提取功能的界面2、界面可以采用MATLAB等编程语言设计3、要求界面能够读入并显示图片,通过各种控件选择并进......
  • 【OpenCV教程】对图像的各种常用操作
    @目录1.图片读取2.创建窗口3.图片显示4.图片保存5.视频输入输出5.1filename5.2index5.3fourcc5.4apiPreference(notimportant)5.5演示6.通道分离与合并6.1分离API(一)API(二)6.2合并API(一)API(二)7.图片色彩模式转换7.1API7.2转换类型和转换码8.改变图片的对比度和亮度8.1概述8......
  • 计算不同金字塔级别下图像匹配所需的时间
    下述代码是使用HALCON软件编写的,HALCON是一款用于机器视觉和图像分析的高级软件。代码的目的是创建一个由两张图像拼接而成的图像马赛克(mosaic),并计算不同金字塔级别下图像匹配所需的时间。ImgPath:=‘3d_machine_vision/mosaic/’ImgName:=‘bga_r_’Times:=[]......
  • OpenCV图像处理——轮廓的面积与弧长计算(C++/Python)
    概述轮廓面积与轮廓周长是图像分析中的两项核心统计特征,它们为理解和量化图像中的形状提供了基础。轮廓面积:这代表了轮廓所界定区域的像素数量,是衡量区域大小的直接指标。面积的计算结果以像素平方为单位,为我们提供了一个量化的尺度来比较不同物体的相对大小。轮廓周长......
  • OpenCV图像处理——按最小外接矩形剪切图像
    引言在图像处理过程中,提取感兴趣区域(ROI)并在其上进行处理后,往往需要将处理后的结果映射回原图像。这一步通常涉及以下几个步骤:找到最小外接矩形:使用cv::boundingRect或cv::minAreaRect提取感兴趣区域的最小外接矩形。从原图中提取ROI:根据矩形坐标从原图中剪切出RO......
  • 为OpenCV1.0添加cvJpeg2Ipl函数
    由于在OpenCV1.0中只提供了从硬盘打开JPEG图像进行解码,有些时候如果JPEG的图像数据是从内存载入的,就无法使用这些曾经很方便高效的接口。为了实现这个目的,我们通过修改OpenCV1.0源码,在其源码包中添加函数,实现把jpeg数据从内存复制到IplImage结构中,这为我们进行相应处理会方......
  • KNN图像识别实例--手写数字识别
    目录前言一、导入库二、导入图像并处理1.导入图像2.提取出图像中的数字3.将列表转换成数组4.获取特征数据集5.获取标签数据三、使用KNN模型1.创建KNN模型并训练2.KNN模型出厂前测试3.使用测试集对KNN模型进行测试四、传入单个图像,使用该模型进行识别1.导入图像......
  • 《机器学习》KNN算法搭配OpenCV训练模型、识别图片 No.2
    一、使用KNN算法识别数字1、明确目的:        有一张图片,其中有一份数据,其中共有0-9的不同写法的数字,共5000条,现在想要对这张图片中的数据进行训练,以完成当输入一张图片,图片内为手写的数字,能自动识别其数字的值为多少,从而完成训练。2、获取数据首先看下面一张图:它......