0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡單探討一下直方圖及其反向投影的應(yīng)用

冬至子 ? 來源:技術(shù)鋪?zhàn)?/span> ? 作者:chasenzhang ? 2023-01-18 10:35 ? 次閱讀

前言

計(jì)算機(jī)視覺中,直方圖的有著很廣泛的的應(yīng)用,通常用來統(tǒng)計(jì)圖像中的某些特征,比如邊緣特征、色彩特征、梯度特征等等。

直方圖通過一種統(tǒng)計(jì)的方法,來表征圖形的特征。這篇文章簡單來探討一下直方圖以及它的一個(gè)應(yīng)用--反向投影。

直方圖

直返圖的計(jì)算其實(shí)很簡單,和我們數(shù)學(xué)中的直方圖差不多,就是統(tǒng)計(jì)某一特征,在這里我們用統(tǒng)計(jì)灰度值舉例子。

首先來看一段畫直方圖的代碼:

#include 
#include 


using namespace cv;
using namespace std;


int main(int argc, char **argv)
{
    Mat img = imread("football2.png");
    cout << "img size " << img.size() << endl;
    cvtColor(img, img, COLOR_BGR2GRAY);
    imshow("img", img);


    Rect rect(330, 270, 160, 160); //lofated of football
    Mat img_obj = img(rect);
    imshow("img_obj", img_obj);


    int bin = 4;
    int channels = 0;
    int size = 256 / bin;
    float hranges[] = {0, 256};
    const float *ranges[] = {hranges};
    const float *ranges_back = {hranges};


    // 計(jì)算直方圖
    MatND hist;
    calcHist(&img_obj, 1, &channels, Mat(), hist, 1, &size, ranges);


    double minValue = 0;
    double maxValue = 0;
    minMaxLoc(hist, &minValue, &maxValue, 0, 0);
    cout << "maxValue: " << maxValue << endl;


    Mat img_hist(maxValue, size, CV_8UC3, Scalar(0, 0, 0));
    for (int i = 0; i < size; i++)
    {
        float bin_value = hist.at<float>(i);
        rectangle(img_hist,Point(i, maxValue), Point(i+1, maxValue-bin_value), Scalar(0, 255, 0));
    }
    imshow("img_hist", img_hist);


    ......
    waitKey(0);
    return 0;
}

直方圖有個(gè)一概念,就是bin,其實(shí)是組距的意思,代碼中是4,就是按照[0, 4)、[4, 8)、[8, 12)......[251,255)為x軸來做統(tǒng)計(jì)的。

整個(gè)代碼其實(shí)簡單,OpenCV畫直方圖的函數(shù)是calcHist,我們要了解函數(shù)的用法以及每個(gè)參數(shù)的意思,在這了不在贅述。另外,它的原理其實(shí)不難,如果想自己實(shí)現(xiàn)一下,應(yīng)該也是比較簡單的。

反向投影

在這篇博客https://blog.csdn.net/zhangjunp3/article/details/79862424是這樣說的

反向投影其實(shí)是直方圖運(yùn)算的逆過程。直方圖運(yùn)算是統(tǒng)計(jì)每個(gè)灰度值對(duì)應(yīng)的像素個(gè)數(shù),而反向投影則是將像素個(gè)數(shù)回送到該像素個(gè)數(shù)對(duì)應(yīng)灰度區(qū)間的像素位置。

反向投影是直方圖運(yùn)算的逆過程,這個(gè)是最最要的內(nèi)容,上面講的已經(jīng)差不多了,下面我們自己來實(shí)現(xiàn)一下反向投影。

接著上面直方圖的代碼繼續(xù):

......
  //將直方圖歸一化為[0, 255]區(qū)間,方面下面可視化
    normalize(hist, hist, 0, 255, NORM_MINMAX, -1, Mat());


    Mat img_back_proj = img.clone();
    for (int i = 0; i < img_back_proj.rows; i++)
    {
        uchar *p = img_back_proj.ptr

代碼的核心就是這句話:p[j] = hist.at(p[j] / bin);

將p[j]位置的像素值帶到直放圖的x軸,得到該像素值在直方圖中的個(gè)數(shù),用統(tǒng)計(jì)的個(gè)數(shù)取代原先的像素值。

代碼的運(yùn)行結(jié)果如下:

2.jpg

可以看出來,在這個(gè)例子中足球的匹配效果還是很好的,

在這個(gè)例子中,我們用的是灰度值做的直方圖,另外的一些特征,比如顏色,邊緣都是可以用來做統(tǒng)計(jì)的。

審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 計(jì)算機(jī)視覺
    +關(guān)注

    關(guān)注

    8

    文章

    1700

    瀏覽量

    46086
  • OpenCV
    +關(guān)注

    關(guān)注

    31

    文章

    635

    瀏覽量

    41488
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    LED投影機(jī)分析

    隨著投影設(shè)備的日益普及,LED投影機(jī)新型投影機(jī)市場份額越來越大。本文就來為大家簡單介紹一下投影機(jī)
    發(fā)表于 11-02 15:21 ?2048次閱讀

    探討一下,CRC校驗(yàn)的優(yōu)勢

    本帖最后由 ntmusic 于 2014-6-11 11:31 編輯 探討一下,使用計(jì)算的2字節(jié)的CRC校驗(yàn)碼和使用固定的2字節(jié)數(shù)據(jù)作為校驗(yàn)在保證數(shù)據(jù)傳輸正確方面有什么不同?
    發(fā)表于 06-11 11:21

    請(qǐng)教一下有關(guān)直方圖的問題

    剛學(xué)習(xí)使用labview不久,照著教材做了個(gè)簡單的統(tǒng)計(jì)分析模塊。直接顯示單個(gè)信號(hào)的直方圖并沒有問題,但是在加入了個(gè)信號(hào)選擇模塊后發(fā)現(xiàn),每次切換信號(hào),
    發(fā)表于 07-22 16:44

    一下直流UPS電源的板子

    今天準(zhǔn)備做一下直流UPS電源的板子。之前有些資源了,需要做一下整合。UPS分為在線模式和續(xù)電模式。在線模式是開關(guān)電源的直接輸出,續(xù)電模式是蓄電池的輸出。在線模式中,同時(shí)給蓄電池充電。...
    發(fā)表于 12-28 08:22

    請(qǐng)問一下直線電機(jī)的磁吸力對(duì)光柵尺信號(hào)有什么影響呢?

    請(qǐng)問一下直線電機(jī)的磁吸力對(duì)光柵尺信號(hào)有什么影響呢?
    發(fā)表于 03-07 15:29

    請(qǐng)問一下直流有刷電機(jī)在換向的時(shí)候?yàn)槭裁措妷簳?huì)波動(dòng)呢?

    請(qǐng)問一下直流有刷電機(jī)在換向的時(shí)候?yàn)槭裁措妷簳?huì)波動(dòng)呢?
    發(fā)表于 03-17 14:34

    探討一下三星的自動(dòng)智能充電小車

    探討一下三星的自動(dòng)智能充電小車 這個(gè)產(chǎn)品是把二手的充電電池再配合個(gè)逆變器轉(zhuǎn)成交流,然后給車輛的交流充電口進(jìn)行充電,上面配置了個(gè)簡單的激光
    的頭像 發(fā)表于 09-17 11:03 ?4415次閱讀

    投影燈泡”了解一下

    UHP光源的電弧亮度能超過小面積高效投影裝置所需的1Gcd/m2,為了達(dá)到更好的集光效果,近年來UHP光源的電弧極距減少到1.0mm,其壽命達(dá)10000小時(shí)以上,功率為200瓦,配備于投影儀產(chǎn)品,重量僅4公斤,體積不到2升,便于攜帶,其屏幕照度超過1100流明,能夠達(dá)到明
    的頭像 發(fā)表于 07-04 11:08 ?3531次閱讀

    簡單探討一下關(guān)于電線電纜的結(jié)構(gòu)材料的相關(guān)知識(shí)

    是什么?接下來,淇玥高溫線纜小編和大家探討一下關(guān)于電線電纜的結(jié)構(gòu)材料的相關(guān)知識(shí)。 從電線電纜的橫截面來觀察分析不同種類的產(chǎn)品,在結(jié)構(gòu)元件上,總體可以分為導(dǎo)線、絕緣層、屏蔽和護(hù)層以及填充元件和承拉元件,其中導(dǎo)線和
    發(fā)表于 09-10 10:07 ?943次閱讀

    關(guān)于彩色圖像高斯反向投影基于OpenCV的C++代碼

    圖像反向投影的最終目的是獲取ROI然后實(shí)現(xiàn)對(duì)ROI區(qū)域的標(biāo)注、識(shí)別、測量等圖像處理與分析,是計(jì)算機(jī)視覺與人工智能的常見方法之。圖像反向投影
    的頭像 發(fā)表于 05-31 10:31 ?991次閱讀

    圖像直方圖的應(yīng)用場景研究

    需要注意的是,直方圖反向投影是基于顏色的,所以會(huì)對(duì)RGB彩色圖像轉(zhuǎn)換到HSV色彩空間,然后基于H跟S兩個(gè)通道生成2D直方圖數(shù)據(jù)分布,如下圖所示:
    的頭像 發(fā)表于 12-22 09:53 ?935次閱讀

    家用投影儀推薦一下哪款比較好?當(dāng)貝X3激光投影最實(shí)惠

    家用投影儀哪個(gè)品牌好?目前市場主流投影儀當(dāng)貝品牌銷量最好,在眾多款投影儀中,家用投影儀推薦一下哪款比較好?肯定是當(dāng)貝X3激光
    的頭像 發(fā)表于 02-28 15:40 ?1880次閱讀
    家用<b class='flag-5'>投影</b>儀推薦<b class='flag-5'>一下</b>哪款比較好?當(dāng)貝X3激光<b class='flag-5'>投影</b>最實(shí)惠

    簡單一下多點(diǎn)觸控協(xié)議

    前面簡單聊了一下多點(diǎn)觸控協(xié)議,接下來找個(gè)驅(qū)動(dòng)來看看具體實(shí)現(xiàn)。目前市面上多點(diǎn)觸控芯片用得比較多的主要是匯頂和敦泰。
    的頭像 發(fā)表于 04-17 09:20 ?2585次閱讀

    簡單介紹一下什么是微波通訊?

    歡迎來到東用知識(shí)小課堂,今天東東就為大家簡單介紹一下什么是微波通訊?我們通常說有三大傳輸系統(tǒng):光纖通信、微波通信、衛(wèi)星通信。實(shí)際上,衛(wèi)星通信也是微波通信的種。通俗的講電磁波通信,主要分為廣播方式
    的頭像 發(fā)表于 03-05 11:33 ?2387次閱讀
    <b class='flag-5'>簡單</b>介紹<b class='flag-5'>一下</b>什么是微波通訊?

    FPGA圖像處理-CLAHE算法介紹()

    在介紹CLAHE算法之前必須要先提一下直方圖均衡化,直方圖均衡化算法是種常見的圖像增強(qiáng)算法,可以讓像素的亮度分配的更加均勻從而獲得個(gè)比較好的觀察效果。
    的頭像 發(fā)表于 01-02 13:32 ?1802次閱讀
    FPGA圖像處理-CLAHE算法介紹(<b class='flag-5'>一</b>)