Open CV系列学习笔记(八)图像直方图 2021-02-02

news/2024/7/7 4:23:27

Open CV系列学习笔记(八)图像直方图

什么是图像直方图

图像直方图由于其计算代价较小,且具有图像平移、旋转、缩放不变性等众多优点,广泛地应用于图像处理的各个领域,特别是灰度图像的阈值分割、基于颜色的图像检索以及图像分类。
图像分割
图像分割是图像识别的基础,对图像进行图像分割,将目标从背景区域中分离出,可以避免图像识别时在图像上进行盲目的搜索,大大提高图像识别的效率以及识别准确率。基于灰度直方图的阈值分割计算简单,适用于目标与背景分布于不同灰度范围的灰度图像,特别是遥感图像。
图像检索
图像检索是 [1] 指快速有效地从大规模图像数据库中检索出所需的图像,是目前一个非常重要又富有的挑战性的研究课题。颜色特征由于其直观性、计算代价较小等优点,在图像检索中扮演着重要角色,早期的图像检索算法也主要利用颜色特征,特别是颜色直方图。
图像分类
图像分类任务主要是对一组图进行一系列自动处理,最终确定图形所属的类别。图像分类具有广泛的应用前景,是计算机视觉的难点问题。针对图像分类的算法众多,其中以基于bag-words模型的方法最为经典有效。该方法首先利用提取的颜色、形状等特征构建视觉词典,然后在图像上统计视觉词的直方图,最后利用视觉词直方图作为特征运用分类器进行分类决策。
在这里插入图片描述
在这里插入图片描述

一维操作

代码:

def plot_demo(image):#一维操作
    plt.hist(image.ravel(),256,[0,256])
    plt.show()

结果:
在这里插入图片描述

多维操作

代码:

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()

结果:
在这里插入图片描述
在这里插入图片描述

完整代码:

import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt


def plot_demo(image):#一维操作
    plt.hist(image.ravel(),256,[0,256])
    plt.show()


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()

print("--------HEllow Python-------")
src = cv.imread("E:/picture/03.jpg")
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("input image",src)
image_hist(src)
cv.waitKey(0)


cv.destroyAllWindows()

http://www.niftyadmin.cn/n/3711223.html

相关文章

关于PInvoke 和COM Interop

关于PInvoke 和COM Interop.1. 平台调用利用平台调用这种服务,托管代码可以调用在动态链接库 (DLL)(如 Win32 API 中的 DLL)中实现的非托管函数。此服务将查找并调用导出的函数,然后根据需要跨越互用边界封送其参数(整…

51单片机板子在Keil中找不到Device设备该怎么办

之前我遇到这个问题是下载了五六个版本的KEIL想找相应的版本内置有STC15F2K60S2的芯片,但下载安装了好多版本也不行,也在网上找了很多解决方案,但大多都是都是MDK的PACK下载,直到有一天看到STC—ISP当中内置有相当方便的STC仿真器…

Open CV系列学习笔记(九)直方图应用 2021-02-03

Open CV系列学习笔记(九)直方图应用 直方图均衡化 在统计学中,直方图(英语:Histogram)是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对…

解决多线程代码

http://www.cnblogs.com/shanyou/archive/2008/10/25/1319283.html 解决多线程代码中的 11 个常见的问题 http://msdn.microsoft.com/zh-cn/magazine/cc817398.aspx 并行编程方面的设计注意事项 http://msdn.microsoft.com/zh-cn/magazine/cc872852.aspx 识别并发问题的工具和方…

Open CV系列学习笔记(十)直方图反向投影 2021-02-04

Open CV系列学习笔记(十)直方图反向投影 反向投影概念 反向投影是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式,简单来讲,反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的…

51单片机用STC—ISP烧录程序是一直显示“正在检测目标单片机···”冷启动板子没有反应

1、遇到这种情况可能是板子和电脑的USB转串口接触不良,如果点STC—ISP也点不动的情况下,可以采取关掉STC—ISP在重新打开解决。如果嫌麻烦可以直接拔掉板子上的USB接口才重新插一下。 2、如果以上方法无法解决,则可能是因为跳线帽接的不对劲&…

win命令大全(个人认识只是部分而已)

Windows系统:开始--运行--命令大全 Nslookup-------IP地址侦测器 explorer-------打开资源管理器 logoff---------注销命令 tsshutdn-------60秒倒计时关机命令 lusrmgr.msc----本机用户和组 services.msc---本地服务设置 oobe/msoobe /a----检查XP是否激活 notepad--------打开…

Open CV系列学习笔记(十一)模板匹配 2021-02-05

Open CV系列学习笔记(十一)模板匹配 模板匹配 模板匹配就是在整个图像区域发现与给定子图像匹 配的小块区域。  所以模板匹配首先需要一个模板图像T(给定的子 图像)  另外需要一个待检测的图像-源图像S  工作方法&#xff…