日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

OpenCV直方图(直方图、直方图均衡,直方图匹配,原理、实现)

發布時間:2023/12/13 综合教程 50 生活家
生活随笔 收集整理的這篇文章主要介紹了 OpenCV直方图(直方图、直方图均衡,直方图匹配,原理、实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 直方圖

灰度級范圍為 ([0,L-1]) 的數字圖像的直方圖是離散函數 (h(r_k) = n_k) , 其中 (r_k) 是第(k)級灰度值,(n_k) 是圖像中灰度為 (r_k) 的像素個數。在實踐中,經常用乘積 (MN) 表示的圖像像素的總數除它的每個分量來歸一化直方圖,通常 (M) 和 (N) 是圖像的行和列的位數。因此,歸一化后的直方圖由 (p(r_k) = n_k/MN) 給出,其中 (k = 0, 1, ... ,L-1) 。簡單地說, (p(r_k)) 是灰度級 (r_k) 在圖像中出現的概率的一個估計。歸一化直方圖的所有分量之和應等于1。

在OPENCV3.0中有相關函數如下,其中有3個版本,這是經常用到的一個:

CV_EXPORTS void calcHist( const Mat* images,
                          int nimages,
                          const int* channels,
                          InputArray mask,
                          OutputArray hist,
                          int dims,
                          const int* histSize,
                          const float** ranges,
                          bool uniform = true,
                          bool accumulate = false );

images, 是要求的Mat的指針,這里可以傳遞一個數組,可以同時求很多幅圖片的直方圖,前提是他們的深度相同,CV_8U或者CV_32F,尺寸相同。通道數可以不同;

nimages, 源圖像個數;

channels, 傳遞要加入直方圖計算的通道。該函數可以求多個通道的直方圖。通道序號從0開始依次遞增。假如第一幅圖像有3個通道,第二幅圖像有兩個通道。則:images[0]的通道序號為0、1、2,images[1]的通道序號則為3、4;如果想通過5個通道計算直方圖,則傳遞的通道channels為int channels[5] = {0, 1, 2, 3, 4, 5}。

mask, 掩碼矩陣,沒有掩碼,則傳遞空矩陣就行了。如果非空則掩碼矩陣大小必須和圖像大小相同,在掩碼矩陣中非空元素將被計算到直方圖內。

hist, 輸出直方圖;

dims, 直方圖維度,必須大于0,并小于CV_MAX_DIMS(32);

histSize, 直方圖中每個維度級別數量,比如灰度值(0-255),如果級別數量為4,則灰度值直方圖會按照[0, 63],[64,127,[128,191],[192,255],也稱為bin數目,這里是4個bin。如果是多維的就需要傳遞多個。每個維度的大小用一個int來表示。所以histSize是一個數組;

ranges, 一個維度中的每一個bin的取值范圍。如果uniform == true,則range可以用一個具有2個元素(一個最小值和一個最大值)的數組表示。如果uniform == false,則需要用一個具有histSize + 1個元素(每相鄰的兩個元素組成的取值空間代表對應的bin的取值范圍)的數組表示。如果統計多個維度則需要傳遞多個數組。所以ranges,是一個二維數組。如下代碼是uniform == false時的情況:

int nHistSize[] = { 5 };
// range有6個元素,每個元素,組成5個bin的取值范圍
float range[] = { 0, 70,100, 120, 200,255 };
const float* fHistRanges[] = { range };
Mat histR, histG, histB;
// 這里的uniform == false
calcHist(&matRGB[1], 1, &nChannels, Mat(), histB, 1, nHistSize, fHistRanges, false, false);

uniform, 表示直方圖中一個維度中的各個bin的寬度是否相同或,詳細解釋見ranges中介紹;

accumulate, 在計算直方圖時是否清空傳入的hist。true,則表示不清空,false表示清空。該參數一般設置為false。只有在想要統計多個圖像序列中的累加直方圖時才會設置為true。例如:

calcHist(mat1, 1, &nChannels, Mat(), hist, 1, nHistSize, fHistRanges, true, false);
calcHist(mat2, 1, &nChannels, Mat(), hist, 1, nHistSize, fHistRanges, true, true);

以上代碼統計了mat1和mat2中圖像數據的直方圖到hist中。也就是說hist中的直方圖數據是從matRGB1和mat2中統計出來的,不單單是mat1的數據,也不單單是mat2的數據。如果第二行中最后一個參數為false則hist中統計的數據單單是mat2的,mat1的數據被清空了。

1.1 統計灰度直方圖
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <string>

using namespace cv;

int main()
{
  std::string strPath = "D:\MyDocuments\My Pictures\OpenCV\";
	Mat matSrc = imread(strPath + "panda.jpg");

	Mat matRGB[3];
	split(matSrc, matRGB);
    int Channels[] = { 0 };
	int nHistSize[] = { 256 };
	float range[] = { 0, 255 };
	const float* fHistRanges[] = { range };
	Mat histR, histG, histB;
	// 計算直方圖
	calcHist(&matRGB[0], 1, Channels, Mat(), histB, 1, nHistSize, fHistRanges, true, false);
	calcHist(&matRGB[1], 1, Channels, Mat(), histG, 1, nHistSize, fHistRanges, true, false);
	calcHist(&matRGB[2], 1, Channels, Mat(), histR, 1, nHistSize, fHistRanges, true, false);

	// 創建直方圖畫布
	int nHistWidth = 800;
	int nHistHeight = 600;
	int nBinWidth = cvRound((double)nHistWidth / nHistSize[0]);
	Mat matHistImage(nHistHeight, nHistWidth, CV_8UC3, Scalar(255, 255, 255));
	// 直方圖歸一化
	normalize(histB, histB, 0.0, matHistImage.rows, NORM_MINMAX, -1, Mat());
	normalize(histG, histG, 0.0, matHistImage.rows, NORM_MINMAX, -1, Mat());
	normalize(histR, histR, 0.0, matHistImage.rows, NORM_MINMAX, -1, Mat());
	// 在直方圖中畫出直方圖
	for (int i = 1; i < nHistSize[0]; i++)
	{
		line(matHistImage,
			Point(nBinWidth * (i - 1), nHistHeight - cvRound(histB.at<float>(i - 1))),
			Point(nBinWidth * (i), nHistHeight - cvRound(histB.at<float>(i))),
			Scalar(255, 0, 0),
			2,
			8,
			0);
		line(matHistImage,
			Point(nBinWidth * (i - 1), nHistHeight - cvRound(histG.at<float>(i - 1))),
			Point(nBinWidth * (i), nHistHeight - cvRound(histG.at<float>(i))),
			Scalar(0, 255, 0),
			2,
			8,
			0);
		line(matHistImage,
			Point(nBinWidth * (i - 1), nHistHeight - cvRound(histR.at<float>(i - 1))),
			Point(nBinWidth * (i), nHistHeight - cvRound(histR.at<float>(i))),
			Scalar(0, 0, 255),
			2,
			8,
			0);
	}
	// 顯示直方圖
	imshow("histogram", matHistImage);
	imwrite(strPath + "histogram.jpg", matHistImage);
	waitKey();
	return 0;
}

原圖:

直方圖:

1.2 H-S直方圖

H-S直方圖是圖片再HSV空間中,統計的H和S兩個維度的直方圖。代碼如下:

#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <string>

using namespace cv;

int main()
{
    Mat matSrc, matHsv;
    std::string strPath = "D:\MyDocuments\My Pictures\OpenCV\";
    matSrc = imread(strPath + "panda_mini.jpg");
    if (matSrc.empty())
        return -1;
    cvtColor(matSrc, matHsv, CV_BGR2HSV);

    int nRows = matSrc.rows;
    int nCols = matSrc.cols;
    std::cout << nRows << std::endl;
    std::cout << nCols << std::endl;

    int hbins = 30, sbins = 32;
    int histSize[] = { hbins, sbins };
    float hranges[] = { 0, 180 };
    float sranges[] = { 0, 256 };
    const float * ranges[] = { hranges, sranges };
    Mat hist;

    int channels[] = { 0, 1 };
    calcHist(&matHsv, 1, channels, Mat(), hist, 2, histSize, ranges, true, false);

    double  maxVal = 0;
    minMaxLoc(hist, 0, &maxVal, 0, 0);
    int nScale = 10;

    Mat histImg = Mat::zeros(sbins * nScale, hbins * nScale, CV_8UC3);
    // 遍歷H、S通道
    for (int j = 0; j < hbins; j++)
    {
        for (int i = 0; i < sbins; i++)
        {
            float binVal = hist.at<float>(j, i);
            // 根據最大值計算變化范圍
            int intensity = cvRound(binVal * 255 / maxVal);
            // 繪圖顯示
            rectangle(histImg,
                Point(j * nScale, i * nScale),
                Point((j + 1) * nScale - 1, (i + 1) * nScale - 1),
                Scalar::all(intensity),
                CV_FILLED);
        }
    }
    imshow("src", matSrc);
    imshow("h-s", histImg);
    waitKey();
    return 0;
}

原圖:

直方圖:

1.3 統計uniform = false的直方圖
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <string>

using namespace cv;

bool histImage(Mat &hist, Mat &matHistImage, int width, int height, int binWidth, int type, Scalar color);

int main()
{
    std::string strPath = "D:\MyDocuments\My Pictures\OpenCV\";
    Mat matSrc = imread(strPath + "panda.jpg", 1);

    int nChannels = 0;
    int Channels[] = { 0 };
    int nHistSize[] = { 5 };
    float range[] = { 0, 70,100, 120, 200,255 }; // 數組中有nHistSize[0] + 1個元素
    const float* fHistRanges[] = { range };
    Mat hist;
    // 計算直方圖,uniform = false
    calcHist(&matSrc, 1, Channels, Mat(), histB, 1, nHistSize, fHistRanges, false, false);
    // 創建直方圖畫布
    int nHistWidth = 800;
    int nHistHeight = 600;
    int nBinWidth = cvRound((double)nHistWidth / nHistSize[0]);
    // 直方圖歸一化
    normalize(histB, histB, 0.0, nHistHeight, NORM_MINMAX, -1, Mat());
    // 在直方圖中畫出直方圖
    Mat matHistImage;
    histImage(histB, matHistImage, nHistWidth, nHistHeight, nBinWidth, CV_8UC3, Scalar(255, 0, 0));
    // 顯示直方圖
    imshow("histogram", matHistImage);
    imwrite(strPath + "panda_histogram_uniform_false.jpg", matHistImage);
    waitKey();
    return 0;
}

bool histImage(Mat &hist, Mat &matHistImage, int width, int height, int binWidth, int type, Scalar color)
{
    if (2 != hist.dims)
        return false;
    if (matHistImage.empty())
    {
        matHistImage.create(height, width, type);
    }
    for (int i = 1; i < hist.rows; i++)
    {
        line(matHistImage,
            Point(binWidth * (i - 1), height - cvRound(hist.at<float>(i - 1))),
            Point(binWidth * (i), height - cvRound(hist.at<float>(i))),
            color,
            2,
            8,
            0);
    }
}

原圖:

直方圖:

2 直方圖均衡

我們很難觀察一幅非常亮或暗的圖像的細節信息,因此對于差異較較大的圖像,我們可以嘗試改變圖像灰度分布來使圖像灰度階分布盡量均勻,進而增強圖像細節信息。我們先考慮連續灰度值的情況,用變量 (r) 表示待處理圖像的灰度。假設 (r) 的取值范圍為 ([0, L-1]) ,且 (r = 0) 表示黑色, (r = L-1) 表示白色。在 (r) 滿足這些條件的情況下,我們注意里幾種在變換形式

[s = T(r), 0 leq r leq L-1
]

我們假設:

(a) (T(r)) 在區間 (0 leq r leq L-1) 上為嚴格單調遞增函數。

(b) 當 (0 leq r leq L-1) 時, (0 leq T(r) leq L-1) 。

則:

[r = T^{-1}(s), 0 leq s leq L-1
]

一幅圖像的灰度值可以看成是區間 ([0, L-1]) 內的隨機變量。隨機變量的基本描繪是器概率密度函數。令 (p_r(r)) 和 (p_s(s)) 分別表示變量 (r) 和 (s) 的概率密度函數,其中 (p) 的下標用于指示 (p_r) 和 (p_s) 是不同的函數。有基本概率論得到的一個基本結果是,如果 (p_r(r)) 和 (T(r)) 已知,且在感興趣的值域上 (T(r)) 是連續且可微的, 則變換(映射)后的變量 (s) 的概率密度函數如下:

[p_s(s) = p_r(r)|frac{dr}{ds}| ag{1}
]

這樣,我們看到,輸出灰度變量s的概率密度函數是由變換函數 (T(r)) 決定的。而在圖像處理中特別重要的也比較常用的變化如下:

[s = T(r) = (L-1) int_0^r{p_r(w)dx} ag{2}
]

其中,(w) 是假積分變量。公式右邊是隨機變量 (r) 的累計分布函數。因為概率密度函數總為正,一個函數的積分是該函數下方的面積。則上式子則滿足(a)條件,當 (r = L-1) 時,則積分值等于1,所以 (s) 的最大值是 (L-1),所以上式滿足條件(b).

而:

[frac{ds}{dr} = frac{dT(r)}{dr} = (L-1)fracozvdkddzhkzd{dr}[int_0^r{p_r(w)}dw] = (L-1)p_r(r)
]

帶入(1)得:

[p_s(s) = p_r(r)|frac{dr}{ds}| = p_r(r)|frac{1}{(L-1)r_r(r)}| = frac{1}{L-1}, 0 leq s leq L-1 ag{3}
]

由 (p_s(s)) 可知,這是一個均勻概率密度函數。簡而言之,(2)中的變換將得到一個隨機變量 (s) ,該隨機變量有一個均勻的概率密度函數表征。而 (p_s(s)) 始終是均勻的,它于 (p_r(r)) 的形式無關。

對于離散值,我們處理其概率(直方圖值)與求和來替代處理概率密度函數與積分。則一幅數字圖像中灰度級 (r_k) 出現的概率近似為

[p_r(r_k) = frac{n_k}{MN}, k = 0,1,2,...,L-1
]

其中,(MN)是圖像中像素的總數,(n_k) 是灰度為 (r_k) 的像素個數, (L) 是圖像中可能的灰度級的數量(8bit圖像時256)。與 (r_k) 相對的 (p_r(r_k))圖形通常稱為直方圖。

式(2)的離散形式為

[s_k = T(r_k) = (L-1)sum_{j=0}^pn_r(r_j) = frac{(L-1)}{MN}sum_{j=0}^kn_j,k = 0, 1, 2,...,L-1
]

在OPENCV中由實現直方圖均衡化的函數:

void equalizeHist( InputArray src, OutputArray dst );

示例代碼:

#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
#include <string>

using namespace cv;

int equalizeHist();
int equalizeHist_Color();


int main()
{
    equalizeHist();
    equalizeHist_Color();
    cvWaitKey();
    return 0;
}

int equalizeHist()
{
    std::string strPath = "D:\MyDocuments\My Pictures\OpenCV\";
    Mat matSrc = imread(strPath + "pic2.jpg");
    if (matSrc.empty())
    {
        return -1;
    }
    imshow("src", matSrc);
    Mat matGray;
    cvtColor(matSrc, matGray, CV_BGR2GRAY);
    // 直方圖均衡化
    Mat matResult;
    equalizeHist(matGray, matResult);

    imshow("equlizeHist", matResult);
    imwrite(strPath + "pic2_gray.jpg", matGray);
    imwrite(strPath + "pic2_equlizeHist.jpg", matResult);
    return 0;
}

int equalizeHist_Color()
{
    std::string strPath = "D:\MyDocuments\My Pictures\OpenCV\";
    Mat matSrc = imread(strPath + "pic2.jpg");
    if (matSrc.empty())
    {
        return -1;
    }
    Mat matArray[3];
    split(matSrc, matArray);
    // 直方圖均衡化
    for (int i = 0; i < 3; i++)
    {
        equalizeHist(matArray[i], matArray[i]);
    }
    Mat matResult;
    merge(matArray, 3, matResult);


    imshow("src", matSrc);
    imshow("equlizeHist", matResult);

    imwrite(strPath + "pic2_equlizeHist_color.jpg", matResult);
    return 0;
}

原圖:

灰度圖:

灰度圖均衡直方圖后:

彩色圖均衡直方圖后:

灰度圖均衡前直方圖

灰度圖均衡直方圖后的直方圖:

我們可以看到均衡直方圖后的直方圖比較相對來說比較均勻了。不過可以看出均衡直方圖后的圖像的直方圖并不是像標準的均勻分布。這是因為我們在推導的是把灰度值看成連續的才會有(3)式的結果。也就是說直方圖其實是概率密度函數的近似,我們實際上是把連續的灰度級強制的映射到了有限的離散的灰度級上。并且在處理中不允許又新的灰度級產生。所以在實際的直方圖均衡應用中,很少見到完美平坦的直方圖。

3 直方圖匹配

在實際場景中,我們常常需要增強某一特定區間的圖像信息,對于某些應用,采用均勻直方圖的基本增強并不是最好的方法。有時我們希望處理后的圖像具有規定的直方圖形狀可能更有用。這種用于產生處理后又特殊直方圖的方法稱為直方圖匹配或直方圖規定化。

繼續用連續灰度 (r) 、(z)、(s),并令 (p_r(r)) 和 (p_z(z)) 表示它們所對應的連續概率密度函數。在這種表示方法中, (r) 和 (z) 分別表示輸入圖像和輸出(已處理)圖像的灰度級。我們可以由給定的輸入圖像估計 (p_r(r)), 而 (p_z(z))是我們希望輸出圖像所具有的指定概率密度函數。

令 (s) 為一個有如下特性的隨機變量:

[s = T(r) = (L-1)int_0^r{p_r(w)}dw ag{4}
]

其中,如前面一樣,(w) 為積分假變量。這個表達式是直方圖均衡的連續形式。

接著,我們定義一個有如下特性的隨機變量 (z):

[G(z) = (L-1)int_0^z{p_z(t)}dt = s ag{5}
]

其中,(t) 為積分假變量。由式(4)和式(5)可得, (G(z) = T(r)),因此 (z)必須滿足以下條件:

[z = G^{-1}[T(r)] = G^{-1}(s) ag{6}
]

一旦由輸入圖像估計出 (p_r(r)), 變換函數 (T(r))就可由式(4)得到。類似地,因為 (p_z(z)),已知,變換函數 (G(z)) 可由式(5)得到。

式(4)到式(6)表明,使用下列步驟,可由一幅給定圖像得到一幅其灰度級具有指定概率密度函數的圖像:

1、由輸入圖像得到 (p_r(r)), 并由式(4)求得 (s) 的值;

2、使用式(11)中指定的概率密度函數求的變換函數 (G(z));

3、求的變換函數 (z = G{-1}(s)); 因為 (z) 是由 (s) 得到的,所以該處理是 (s) 到 (z)的映射,而后者正是我們期望的值;

4、首先用式(4)對輸入頭像均衡得到輸出圖像;該圖像的像素值是 (s) 值。對均衡就后的圖像中具有 (s) 值的每個像素執行反映射 (z = G^{-1}(s)),得到輸出圖像中的相應像素。當所以的像素都處理完后,輸出圖像的概率密度函數將等于指定的概率密度函數。

如直方圖均衡中一樣,直方圖規定話在原理上是簡單的。在實際中的困難是尋找 (T(r)) 和 (G^{-1}) 的有意義的表達式。不過我們是在離散情況下的,則問題可以簡化很多。式(4)的離散形式如下:

[s_k = T(r_k) = (L-1)sum_{j=0}^pn_r(r_j) = frac{(L-1)}{MN}sum_{j=0}^kn_j,k = 0, 1, 2,...,L-1
]

其中 (MN) 式圖像的像素總數, (n_j) 是具有灰度值 (r_j) 的像素數, (L) 是圖像中可能的灰度級數。類似的,給定一個規定的 (s_k) 值, 式(5)的離散形式設計計算變化函數

[G(z_q) = (L-1) sum_{i = 0}^k{p_z(z_i)} ag{7}
]

對一個 (q) 值,有

[G(z_q) = s_k ag{8}
]

其中, (p_z(z_i)) 時規定的直方圖的第 (i) 個值。 方便換找到期望的值 (z_q):

[z_q = G^{-1}(s_k) ag{9}
]

也就是說,該操作對每一個 (s) 值給出一個 (z) 值;這樣就形成了從 (s) 到 (z) 的映射。

我們不需要計算 (G) 的反變換。因為我們處理的灰度級是整數(如8bit圖像的灰度級從0到255),通過式(7)可以容易地計算 (q = 0,1,3,...,L-1) 所有可能的 (G) 值。標定這些值,并四舍五入為區間 ([0, L-1]) 內的最接近整數。將這些值存儲在一個表中。然后給定一個特殊的 (s_k) 值后,我們可以查找存儲在表中的最匹配的值。這樣,給定的 (s_k) 值就與相應的 (z) 值關聯在一起了。這樣能找到每個 (s_k) 值到 (z_q) 值的映射。也就是式(8)的近似。這些映射也是直方圖規定化問題的解。

這里還有個問題,就是在離散情況下,式(7)不再式嚴格單調的,則式(9)可能會出現一對多的映射,還有可能出現有些值沒有映射的情況。這里采用的辦法式對于一對多的情況做個平均(因為式(7)可能不在嚴格單調,但仍然是單調不減的,所以平均很合適),對于沒有映射的則取其最接近的值。

示例代碼:

#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
#include <string>

using namespace cv;

bool histMatch_Value(Mat matSrc, Mat matDst, Mat &matRet);
int histogram_Matching();

int main()
{
    histogram_Matching();
    return 0;
}

bool histMatch_Value(Mat matSrc, Mat matDst, Mat &matRet)
{
    if (matSrc.empty() || matDst.empty() || 1 != matSrc.channels() || 1 != matDst.channels())
        return false;
    int nHeight = matDst.rows;
    int nWidth = matDst.cols;
    int nDstPixNum = nHeight * nWidth;
    int nSrcPixNum = 0;

    int arraySrcNum[256] = { 0 };                // 源圖像各灰度統計個數
    int arrayDstNum[256] = { 0 };                // 目標圖像個灰度統計個數
    double arraySrcProbability[256] = { 0.0 };   // 源圖像各個灰度概率
    double arrayDstProbability[256] = { 0.0 };   // 目標圖像各個灰度概率
    // 統計源圖像
    for (int j = 0; j < nHeight; j++)
    {
        for (int i = 0; i < nWidth; i++)
        {
            arrayDstNum[matDst.at<uchar>(j, i)]++;
        }
    }
    // 統計目標圖像
    nHeight = matSrc.rows;
    nWidth = matSrc.cols;
    nSrcPixNum = nHeight * nWidth;
    for (int j = 0; j < nHeight; j++)
    {
        for (int i = 0; i < nWidth; i++)
        {
            arraySrcNum[matSrc.at<uchar>(j, i)]++;
        }
    }
    // 計算概率
    for (int i = 0; i < 256; i++)
    {
        arraySrcProbability[i] = (double)(1.0 * arraySrcNum[i] / nSrcPixNum);
        arrayDstProbability[i] = (double)(1.0 * arrayDstNum[i] / nDstPixNum);
    }
    // 構建直方圖均衡映射
    int L = 256;
    int arraySrcMap[256] = { 0 };
    int arrayDstMap[256] = { 0 };
    for (int i = 0; i < L; i++)
    {
        double dSrcTemp = 0.0;
        double dDstTemp = 0.0;
        for (int j = 0; j <= i; j++)
        {
            dSrcTemp += arraySrcProbability[j];
            dDstTemp += arrayDstProbability[j];
        }
        arraySrcMap[i] = (int)((L - 1) * dSrcTemp + 0.5);// 減去1,然后四舍五入
        arrayDstMap[i] = (int)((L - 1) * dDstTemp + 0.5);// 減去1,然后四舍五入
    }
    // 構建直方圖匹配灰度映射
    int grayMatchMap[256] = { 0 };
    for (int i = 0; i < L; i++) // i表示源圖像灰度值
    {
        int nValue = 0;    // 記錄映射后的灰度值
        int nValue_1 = 0;  // 記錄如果沒有找到相應的灰度值時,最接近的灰度值
        int k = 0;
        int nTemp = arraySrcMap[i];
        for (int j = 0; j < L; j++) // j表示目標圖像灰度值
        {
            // 因為在離散情況下,之風圖均衡化函數已經不是嚴格單調的了,
            // 所以反函數可能出現一對多的情況,所以這里做個平均。
            if (nTemp == arrayDstMap[j])
            {
                nValue += j;
                k++;
            }
            if (nTemp < arrayDstMap[j])
            {
                nValue_1 = j;
                break;
            }
        }
        if (k == 0)// 離散情況下,反函數可能有些值找不到相對應的,這里去最接近的一個值
        {
            nValue = nValue_1;
            k = 1;
        }
        grayMatchMap[i] = nValue/k;
    }
    // 構建新圖像
    matRet = Mat::zeros(nHeight, nWidth, CV_8UC1);
    for (int j = 0; j < nHeight; j++)
    {
        for (int i = 0; i < nWidth; i++)
        {
            matRet.at<uchar>(j, i) = grayMatchMap[matSrc.at<uchar>(j, i)];
        }
    }
    return true;
}

int histogram_Matching()
{
    std::string strPath = "D:\MyDocuments\My Pictures\OpenCV\";
    Mat matSrc = imread(strPath + "pic2.jpg"); // 源圖像
    Mat matDst = imread(strPath + "pic3.jpg"); // 目標圖像

    Mat srcBGR[3];
    Mat dstBGR[3];
    Mat retBGR[3];
    split(matSrc, srcBGR);
    split(matDst, dstBGR);

    histMatch_Value(srcBGR[0], dstBGR[0], retBGR[0]);
    histMatch_Value(srcBGR[1], dstBGR[1], retBGR[1]);
    histMatch_Value(srcBGR[2], dstBGR[2], retBGR[2]);

    Mat matResult;
    merge(retBGR, 3, matResult);
    imshow("src", matSrc);
    imshow("dst", matDst);
    imshow("Ret", matResult);

    imwrite(strPath + "hist_match_value.jpg", matResult);

    cvWaitKey();
    return 0;
}

原圖:

目標圖:

原圖按照目標圖直方圖匹配后:

直方圖匹配和均衡直方圖效果還是有很多差別的,感興趣的可以和前面的均衡直方圖比較一下。直方圖匹配可以說是把一幅圖轉換成另一幅的風格。

總結

以上是生活随笔為你收集整理的OpenCV直方图(直方图、直方图均衡,直方图匹配,原理、实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久久www成人免费毛片 | 五月天婷亚洲天综合网鲁鲁鲁 | 日产中文字幕 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 韩国一区二区三区在线观看 | 日日操操| 国产成人精品三级 | 国产精品久久久久久婷婷天堂 | 久久久久久久精 | 在线午夜电影神马影院 | 超碰人人av | 国产精品综合在线 | av天天干| 国产免费av一区二区三区 | 国产精品中文字幕av | 日韩美av在线 | 成年人免费在线观看 | 国产精品久久久久免费 | 成人av网页| 久久免费视频这里只有精品 | 亚洲国产精品久久久久 | 国产精品一区二区久久国产 | 婷婷六月综合网 | 亚洲另类交 | 日韩在线免费不卡 | 视频在线播放国产 | 久久有精品 | 人人爽人人插 | 麻豆91在线观看 | 精品a在线 | 91在线精品秘密一区二区 | 一区二区伦理 | 免费日韩视频 | 天天干天天怕 | 在线观看国产一区二区 | 98精品国产自产在线观看 | 97色在线视频 | 日韩国产在线观看 | 国产视频一区在线播放 | 国产精品入口麻豆www | 精品国产一区二区三区噜噜噜 | 国产99久久99热这里精品5 | 热九九精品 | 国产91在线看 | 国产精品乱码久久 | 狠狠干激情 | 人人干人人干人人干 | 香蕉网在线播放 | 91麻豆看国产在线紧急地址 | 手机在线日韩视频 | 国产专区视频在线 | 中文国产字幕 | 欧美亚洲国产精品久久高清浪潮 | 午夜精品久久久久久久99 | 国产无套一区二区三区久久 | 国产精品mm | 国产精品一区二区三区电影 | 久久99国产精品自在自在app | 91香蕉视频污在线 | 粉嫩一区二区三区粉嫩91 | 91福利视频免费 | 黄色在线看网站 | 欧美一级在线看 | 99爱精品视频| 91香蕉视频好色先生 | 福利视频入口 | 久久免费黄色大片 | 天堂av影院 | av成人免费| 亚洲亚洲精品在线观看 | 久久中文字幕视频 | 亚洲国产日韩av | 97综合在线 | 天天艹天天 | 亚洲成人精品国产 | 亚洲精品福利在线 | 国产午夜精品一区二区三区 | 中文字幕在线观看第二页 | 九九久久免费 | 超级碰视频| 欧美色久| 国产在线观看国语版免费 | 国产精品精品国产色婷婷 | 91精品在线免费 | 欧美成a人片在线观看久 | 免费看的毛片 | 99看视频在线观看 | 精品99免费 | 四虎成人av | 日韩.com | 婷婷在线播放 | 欧美贵妇性狂欢 | 国产无遮挡又黄又爽馒头漫画 | 欧美日韩一级久久久久久免费看 | 日韩a在线看 | 久久激情电影 | 国产精品色婷婷 | 国产欧美日韩精品一区二区免费 | 91亚洲精品久久久中文字幕 | 欧美二区在线播放 | 国产高清在线免费视频 | 国产精品1区2区3区 久久免费视频7 | 五月婷在线 | 日韩高清不卡一区二区三区 | 成人蜜桃视频 | 免费下载高清毛片 | 国产免费一区二区三区网站免费 | 免费观看性生活大片 | 成人黄色电影免费观看 | 亚洲永久免费av | 97夜夜澡人人爽人人免费 | 美女网站在线观看 | 国产精品久久久久一区二区三区共 | 成人在线播放视频 | 91av播放| 国产日韩欧美在线播放 | 国产精品视频全国免费观看 | 国产91影视 | 国产一区二区三区高清播放 | 国产一区国产精品 | 2023年中文无字幕文字 | 国产精品私人影院 | 久久玖 | 精品福利网 | 欧美激情视频一二区 | 亚洲欧洲精品久久 | 午夜三级理论 | 一区二区视频免费在线观看 | 国产精品一区二区av影院萌芽 | 欧美日韩中文视频 | 我要看黄色一级片 | 欧美另类一二三四区 | 亚洲伊人成综合网 | 在线免费观看黄色av | 毛片美女网站 | 精品一区在线看 | 五月天婷亚洲天综合网鲁鲁鲁 | 日韩色综合网 | 国产精品免费在线 | 久久女同性恋中文字幕 | av 一区二区三区 | 99久久日韩精品免费热麻豆美女 | 九九99靖品 | 人人看看人人 | 美女网站视频免费黄 | 国产亚洲视频在线观看 | 亚洲精品乱码久久久久久9色 | 在线看一区二区 | 正在播放一区 | 国产视频在线播放 | 免费看黄20分钟 | 探花视频在线观看+在线播放 | 日本精品视频在线播放 | 久久免费a | 99热只有精品在线观看 | 免费日韩一区二区三区 | 精品免费一区 | 亚洲综合在线视频 | 免费一级日韩欧美性大片 | 日日日操操 | www.99av| av丝袜在线 | а中文在线天堂 | 天堂视频一区 | 成人h在线播放 | 国产精品h在线观看 | 久久精品国产一区二区三 | 干干夜夜 | 日韩av二区| 韩国三级一区 | 久草精品视频 | www成人av| 色综合久久综合 | 免费精品| 久久免费国产精品 | 91黄站| 国产一区二区精 | 欧美一区二区精品在线 | 精品在线视频观看 | www久草 | 日韩在线视频线视频免费网站 | 999热视频| 国产69精品久久app免费版 | 免费能看的黄色片 | 久久都是精品 | 欧美色精品天天在线观看视频 | 免费网站看av片 | 激情视频国产 | 天天碰天天操 | 超碰国产在线播放 | 在线看成人 | 美女视频久久黄 | 亚洲精品伦理在线 | 黄色毛片视频免费观看中文 | 国产精品高清免费在线观看 | 亚洲精品午夜久久久久久久久久久 | 毛片在线播放网址 | 婷婷六月中文字幕 | 在线视频 国产 日韩 | 国产精品美女久久久 | 五月激情六月丁香 | 国产你懂的在线 | 久久综合久久综合这里只有精品 | 久久理论视频 | 亚洲精品www久久久久久 | 视频成人免费 | 人人玩人人添人人澡超碰 | 中文字幕亚洲欧美日韩2019 | 樱空桃av | 久久久高清 | 欧美日韩高清一区二区 国产亚洲免费看 | 国产精品激情偷乱一区二区∴ | 欧美精品第一 | 青草视频在线看 | 九色视频网站 | 久久激情视频 久久 | 97电影院网 | 欧美最猛性xxxxx(亚洲精品) | 中文字幕精品三级久久久 | 天天干.com| 久久国产精品电影 | 国产精品美女久久久久久久网站 | 免费黄a | 91毛片视频 | 四虎5151久久欧美毛片 | 国产精品美女久久久久久 | 亚洲国产精品一区二区久久,亚洲午夜 | 男女激情免费网站 | 欧美日韩亚洲在线观看 | 黄色三级在线看 | 日本黄色大片儿 | 国产伦理剧 | 久艹在线免费观看 | 黄色av电影在线 | 亚洲乱码国产乱码精品天美传媒 | 国产成人精品av在线观 | 波多野结衣在线播放一区 | 亚洲午夜激情网 | 国产一区私人高清影院 | 亚洲片在线资源 | 久久免费视频在线观看30 | 亚洲欧美日韩中文在线 | 玖玖视频免费在线 | 99精品热视频 | 中文字幕电影高清在线观看 | 大荫蒂欧美视频另类xxxx | 色插综合 | 99久久久国产精品免费观看 | 久久精品影视 | av导航福利 | 人人插超碰| 涩涩伊人 | 六月丁香激情综合 | 国产午夜小视频 | 久久久久久久久久久久久久电影 | 一级片视频在线 | 91高清完整版在线观看 | av动图| 精品一二区 | 综合网欧美| 亚洲五月激情 | 天天摸日日摸人人看 | 日韩视频1区 | 91精品亚洲影视在线观看 | 婷婷激情小说网 | 五月在线视频 | 精品国产激情 | 国产手机av在线 | 91精品视频免费在线观看 | 黄色小网站免费看 | 伊人久久av| 97精品国产97久久久久久 | 日韩精品视频网站 | 五月婷婷综 | 黄色大片日本 | 久草网视频 | 久草在线免费资源 | av三级在线播放 | 国产精品一区在线观看你懂的 | 99热在线国产精品 | 99视频这里有精品 | 亚洲精品综合久久 | 91精品伦理| 2018亚洲男人天堂 | 国产天天综合 | 在线观看视频国产一区 | 成人黄在线 | 亚洲成a人片77777潘金莲 | 四虎在线影视 | 东方av免费在线观看 | 国产精品成久久久久三级 | 国产专区欧美专区 | 久久综合狠狠综合 | 韩国一区二区三区在线观看 | 亚洲成av人影院 | 久久国产精品99久久久久久丝袜 | 国产999精品久久久久久 | 青青草久草在线 | 欧美性爽爽 | 中文字幕永久 | 在线视频 影院 | 日韩一级黄色片 | 久久久久久高清 | 国产特级毛片aaaaaa | 日韩三级中文字幕 | 亚洲最新av| 午夜国产福利在线 | 麻豆91视频 | 精品国产一区二区三区四区在线观看 | 狠狠狠色丁香婷婷综合激情 | 97爱爱爱| 天天插天天干天天操 | 在线看污网站 | 欧美在线视频一区二区三区 | www视频免费在线观看 | 国产日产高清dvd碟片 | 国产精品va视频 | 少妇av片| 一级α片免费看 | 欧美日韩后 | 天天综合网 天天综合色 | 青青啪 | 又黄又爽又湿又无遮挡的在线视频 | 超碰97在线资源站 | 女人魂免费观看 | 九九免费精品视频在线观看 | 少妇搡bbbb搡bbb搡69 | 伊人精品在线 | 天天做天天爱天天爽综合网 | 午夜av免费在线观看 | 四虎国产精品成人免费4hu | 夜夜夜夜爽 | a级国产乱理论片在线观看 伊人宗合网 | 字幕网av| 中文乱码视频在线观看 | 99久久精品一区二区成人 | 天天综合中文 | 一区二区中文字幕在线播放 | 超碰免费在线公开 | 色插综合 | 99成人免费视频 | 99r精品视频在线观看 | 亚洲成人资源在线观看 | 天天操天天添 | 久久五月网 | 精品麻豆入口免费 | 一区二区精品在线观看 | 国产精品1000 | 日韩精品一卡 | 久久精品欧美一区 | 天天色天天射综合网 | 精品a级片| 国产在线播放一区二区三区 | 91亚洲精品久久久蜜桃借种 | 免费色婷婷 | 精品一区二区av | 国产一级电影 | 在线高清 | 天天干天天操天天射 | 婷婷色婷婷 | 不卡国产视频 | 在线观看午夜 | 亚洲成人精品av | 美州a亚洲一视本频v色道 | 亚洲激情在线观看 | 在线导航av | 手机成人在线电影 | 黄色三级网站 | 亚洲午夜久久久久 | 黄av免费在线观看 | 色婷婷成人| 色综合中文字幕 | 久久精品福利 | 国产福利午夜 | 在线中文字母电影观看 | 亚洲精品国产精品99久久 | 久久国产一区二区三区 | 国产亚洲视频在线观看 | 免费视频黄色 | 亚洲精品国产综合99久久夜夜嗨 | 成人免费网站在线观看 | 国产精品久久久久久超碰 | 99久久精品国产网站 | 国产精品福利在线观看 | 国产精品11 | 丁香婷婷色 | 国产在线国产 | 九色琪琪久久综合网天天 | 91看片一区二区三区 | 国产精品福利久久久 | 国产精品女 | 就要干b | 精品999久久久 | 欧美精品一区二区免费 | 国产精品久久久久久久久久久免费 | 欧美精品一二三 | 久久综合射| 在线观看黄网站 | 久久成人麻豆午夜电影 | 天堂av在线 | 免费视频一区二区 | 激情网五月婷婷 | 午夜精品福利在线 | 天天操天天干天天爱 | 在线观看视频国产 | 91精品一区二区三区久久久久久 | 亚洲国产精品久久久久婷婷884 | 五月天婷婷狠狠 | 日韩视频中文字幕 | 日韩av网站在线播放 | 欧美日本高清视频 | 日韩精品不卡 | 亚洲国产av精品毛片鲁大师 | 日韩中文字幕在线 | 亚洲少妇影院 | 一级做a爱片性色毛片www | 国产破处在线视频 | 黄污网 | 国产一区在线观看免费 | 色婷婷av一区二 | 欧洲精品码一区二区三区免费看 | 国产精品美女久久久久aⅴ 干干夜夜 | 波多野结衣精品 | 久久久久久久久精 | 久草在线免费在线观看 | 中文字幕在线观看免费观看 | 亚洲jizzjizz日本少妇 | 黄色小网站在线 | 欧美日韩国产一区二区三区 | 中文字幕在线观看亚洲 | 日韩中文字幕视频在线观看 | 91探花在线视频 | 色视频在线免费观看 | 婷婷综合成人 | 久久艹久久 | 欧美精品久久久久久久久久白贞 | 久久久五月婷婷 | 日日干日日色 | 国产午夜精品免费一区二区三区视频 | 99精品视频在线免费观看 | 波多野结衣一区二区三区中文字幕 | 五月天六月婷 | 中文字幕电影高清在线观看 | 日韩欧美国产激情在线播放 | 欧美精品天堂 | 中文字幕在线乱 | 国产99色| 亚洲高清资源 | 日韩一区二区三区免费电影 | 午夜性盈盈 | 国产一区 在线播放 | 波多野结衣电影一区 | 国产成人精品网站 | 天天操网址| 亚洲人xxx| 欧美二区三区91 | 日本中文字幕在线一区 | 黄色免费网站大全 | 亚洲专区在线播放 | 天天操欧美 | 久久精品国产精品 | 激情久久久久久久久久久久久久久久 | 国产精品久久久久久久久免费 | 亚洲一区久久久 | 国产精品免费观看久久 | 中文字幕人成人 | 色视频成人在线观看免 | 女人18毛片a级毛片一区二区 | 中日韩在线视频 | 日韩特黄一级欧美毛片特黄 | 国产色网 | 日韩深夜在线观看 | 亚洲一区二区观看 | 日日精品 | 国产麻豆精品95视频 | 欧美日韩久久 | 99视频精品 | 99精品国产免费久久久久久下载 | 亚洲国产日韩一区 | 在线观看成年人 | 探花系列在线 | 99re8这里有精品热视频免费 | 久久久久久久久毛片精品 | 探花国产在线 | 亚洲欧洲在线视频 | 国产又黄又猛又粗 | 日韩成人av在线 | 国产精品男女视频 | 麻豆国产精品永久免费视频 | 日韩av在线一区二区 | 天天操天天干天天干 | 久久全国免费视频 | 色综合久久久久综合99 | 免费成人在线电影 | 8090yy亚洲精品久久 | 日韩精品高清不卡 | 日韩欧美一区二区三区在线观看 | 日韩中文字幕免费视频 | 成人a在线观看 | 久久精品这里精品 | 久久国产精品精品国产色婷婷 | 国产亲近乱来精品 | av在线小说| av一区在线播放 | 免费成人黄色av | 美女久久久久 | 亚洲一区二区三区四区精品 | 婷婷在线免费 | av丝袜天堂 | 成人精品国产 | 日韩mv欧美mv国产精品 | 国产福利91精品一区二区三区 | www国产亚洲精品久久麻豆 | 噜噜色官网 | 欧美久久久一区二区三区 | 亚洲最大在线视频 | 亚洲精品在 | 日韩色区| 亚洲片在线观看 | 在线播放 亚洲 | 国产91学生粉嫩喷水 | 一区在线观看 | 狠狠成人| 久久激情日本aⅴ | 伊人亚洲综合 | 国产视频1| 在线视频 精品 | 久久精品看 | 久久一区二区三区日韩 | 久久国产电影 | 国产剧情一区 | 精品在线视频一区二区三区 | 成年人免费在线观看网站 | 久久久久久久免费看 | 久久女同性恋中文字幕 | 亚洲视频 在线观看 | 99婷婷狠狠成为人免费视频 | 豆豆色资源网xfplay | 一本一本久久a久久精品牛牛影视 | 亚洲五月六月 | 色婷av | 久久人人爽人人爽人人 | 国产亚洲精品久久久久久网站 | 日韩乱码在线 | 久热香蕉视频 | 国产xxxxx在线观看 | 91完整版在线观看 | 麻豆传媒视频在线免费观看 | 日本中文字幕在线电影 | 国产首页 | 久久久国产精品人人片99精片欧美一 | 天天天天天天天天操 | 麻豆视频大全 | 日韩精品一区二区三区在线视频 | 国产色a在线观看 | 亚洲最大成人网4388xx | 欧洲av在线 | 国产中文字幕视频在线观看 | 91精品黄色 | 国产成人精品一区二区三区福利 | 综合网av| 色网站在线免费观看 | 亚洲国产美女久久久久 | 奇米影音四色 | 久久免费视频精品 | av在线网站免费观看 | 久久99热精品这里久久精品 | 91麻豆精品国产91久久久无限制版 | 久久综合影音 | 99精品一区二区 | 国产福利久久 | 在线亚洲播放 | 久草电影网| 色婷婷综合久久久久 | 国产欧美精品xxxx另类 | 青青河边草免费观看 | 国产精品免费视频久久久 | a色网站| 九九精品在线观看 | 在线视频观看你懂的 | 国产精品第十页 | 成人性生爱a∨ | 久久久精品免费看 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 亚洲精品日韩在线观看 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 婷婷深爱网 | 国产精品久久在线 | 在线免费观看国产 | 国语自产偷拍精品视频偷 | 久久精品区 | 伊人国产在线播放 | 国产精品视频观看 | 午夜av在线 | 日本成人中文字幕在线观看 | 国产精品一区二区三区免费视频 | 色偷偷中文字幕 | 亚洲色图22p| 日韩视频一区二区在线 | 国产伦理一区二区三区 | 久草在线资源视频 | 国产综合精品一区二区三区 | 九精品 | 久久婷婷色综合 | 亚洲国内精品在线 | 久久爱资源网 | 精品国产一区二区三区噜噜噜 | japanesexxx乱女另类 | 99久久精品免费看国产免费软件 | 一区二区高清在线 | 久久国产精品久久久久 | 91麻豆精品国产91久久久更新时间 | 亚洲欧洲国产视频 | 成人黄色在线电影 | 久草色在线观看 | 极品嫩模被强到高潮呻吟91 | www.888.av | 91麻豆操 | 亚洲成a人片77777kkkk1在线观看 | 日韩欧美在线播放 | 国内外成人免费在线视频 | av久久在线 | 97网在线观看 | 99精品久久精品一区二区 | 99爱国产精品| 国产在线日本 | 5月丁香婷婷综合 | 日韩一区二区三区观看 | www.天天成人国产电影 | 一级淫片在线观看 | 免费色av| 国产黄av| 天天插一插| 亚洲区另类春色综合小说 | 91av精品 | 91九色在线视频观看 | 国产亚洲综合性久久久影院 | 日韩欧美国产精品 | 中文字幕黄网 | 免费观看黄| 高清一区二区 | 97国产超碰在线 | 免费在线91 | 国产成人久久精品一区二区三区 | 日本黄色免费观看 | 亚洲欧美日韩一二三区 | 亚洲一二三久久 | 九九热99视频 | 亚洲日本va午夜在线电影 | 麻豆传媒一区二区 | 国产精品wwwwww | 亚洲免费观看在线视频 | 免费黄a大片| 久久免费电影网 | 在线免费观看的av | 久久亚洲欧美日韩精品专区 | 久久免费国产电影 | 中文字幕高清av | 日日摸日日 | 国产麻豆传媒 | 婷婷六月激情 | 在线a视频 | 国产不卡毛片 | 国产一级淫片免费看 | 九九交易行官网 | 日韩国产欧美在线播放 | 午夜成人影视 | 97精品久久| 久久久麻豆视频 | 五月激情久久久 | 亚洲va欧美va国产va黑人 | 国产中文欧美日韩在线 | 亚洲成av人影院 | 在线观看深夜视频 | av高清一区二区三区 | 中文字幕在线免费97 | av888av.com | 国产又粗又猛又爽 | 麻豆免费在线视频 | 亚洲片在线观看 | 天天草天天爽 | 国产精品a级 | 国产99久久精品一区二区300 | av综合网址 | 伊人影院99| 国产男女免费完整视频 | 92av视频| 91日韩精品一区 | 超碰97.com| 久久久精品一区二区 | 久久久精品国产一区二区三区 | 婷婷丁香六月 | 亚洲精品动漫成人3d无尽在线 | 国产又粗又硬又爽的视频 | 在线观看的av| 99高清视频有精品视频 | 日本黄色大片免费看 | 黄视频网站大全 | 五月综合激情婷婷 | 国产一级片一区二区三区 | 国产免费激情久久 | 伊人成人久久 | 在线国产中文字幕 | 亚洲天堂精品 | 大胆欧美gogo免费视频一二区 | 国产打女人屁股调教97 | 99 精品 在线| 91pony九色丨交换 | 色偷偷88欧美精品久久久 | 日韩 精品 一区 国产 麻豆 | 69久久99精品久久久久婷婷 | 91亚洲精| 久草在线费播放视频 | 免费观看的黄色片 | 久久久国产精品人人片99精片欧美一 | 日本激情中文字幕 | 国产一区二区在线精品 | 在线视频1卡二卡三卡 | 国产精彩视频一区 | 97精品国产97久久久久久春色 | 99re国产视频 | 欧美成人在线网站 | 亚洲精品美女久久 | 日日麻批40分钟视频免费观看 | 在线激情网 | 日韩在线电影观看 | 丁香花在线视频观看免费 | 韩国一区在线 | 99热这里有精品 | 国产视频在线观看一区 | 日韩精品一区二区三区在线播放 | 亚洲精品久久久久999中文字幕 | 欧美一级免费片 | 午夜影视一区 | 男女视频久久久 | 91插插插免费视频 | 日韩欧美在线一区 | 日本色小说视频 | 波多野结衣精品 | 久久综合中文字幕 | 99精品免费网 | 黄色网在线免费观看 | 成人免费看片网址 | 美女视频黄免费 | 国产精品videossex国产高清 | 天天色棕合合合合合合 | 九月婷婷人人澡人人添人人爽 | 黄污网 | 亚洲午夜精 | 婷婷网站天天婷婷网站 | 在线看毛片网站 | 亚州日韩中文字幕 | 91网免费观看 | 色综合久久久久久久 | 国产精品剧情 | 免费v片| 碰碰影院 | 最新日韩中文字幕 | 狠日日| 在线观看中文字幕av | www久久com| japanesefreesexvideo高潮 | 日日干 天天干 | 五月天综合色 | 六月色播| 国产香蕉在线 | 999亚洲国产996395 | 日韩在线影视 | 992tv在线观看 | 日日夜精品 | 日韩一区正在播放 | 91c网站色版视频 | 在线观看黄色大片 | 国产在线理论片 | 婷婷综合在线 | 国产91精品久久久久久 | 91高清在线 | 欧美国产不卡 | 国产伦精品一区二区三区免费 | 五月婷婷中文 | 亚洲精品在线观看视频 | 日韩欧美网站 | 免费黄色a网站 | 97天堂网 | 婷婷av网站 | 日韩影视精品 | 热久久免费视频 | 激情av综合 | 免费看色的网站 | 最近日韩免费视频 | 午夜国产一区二区三区四区 | 在线播放日韩av | 91在线网址 | 91免费高清视频 | 免费97视频| 国产精品99久久免费黑人 | 91在线日韩 | 免费毛片一区二区三区久久久 | 精品国产一区二区三区蜜臀 | 国产精品一区二区免费看 | 亚洲 中文 在线 精品 | 国内精品免费久久影院 | 日韩精品免费 | 一区二区在线电影 | 国产在线a免费观看 | 又色又爽又黄 | 亚洲九九九在线观看 | 又爽又黄又刺激的视频 | 欧美一区二区伦理片 | 久久国产精品偷 | 天天干天天操天天拍 | 九九精品毛片 | 手机成人av | 欧美精品一区在线发布 | 嫩嫩影院理论片 | 久久字幕精品一区 | 四虎成人精品永久免费av | 欧美一区日韩精品 | 精品三级av | 国产精品欧美久久 | 久久精品最新 | 亚洲综合视频在线观看 | 日韩三级视频在线看 | 亚洲免费在线播放视频 | 久久精品一区二区三区视频 | 亚洲精品字幕在线 | 香蕉视频一级 | 国产精品去看片 | 成人精品国产免费网站 | 日日干夜夜干 | 久久五月精品 | 日韩在线视频免费看 | 欧美日韩在线观看一区二区 | 在线免费观看涩涩 | 婷婷五综合 | 九九热免费在线视频 | 伊人超碰在线 | 黄色av网站在线观看 | 国产精品一二三 | 日日干激情五月 | 久久精品婷婷 | 色开心| 欧美日韩二三区 | 最近更新好看的中文字幕 | 天天操网 | 日p在线观看 | 久久99精品视频 | 免费看片网址 | 欧美一区二区伦理片 | 免费亚洲视频 | 顶级bbw搡bbbb搡bbbb | 久艹在线观看视频 | 岛国av在线免费 | 中文字幕中文字幕在线中文字幕三区 | 色全色在线资源网 | 偷拍精偷拍精品欧洲亚洲网站 | 欧美日韩中文另类 | 青草视频在线免费 | 日韩成人精品 | 亚洲国产午夜视频 | 九九久久在线看 | 99久久er热在这里只有精品15 | 欧美成人h版电影 | 国产不卡在线观看 | 亚州精品在线视频 | 久久综合久久综合九色 | 中文字幕免费高清在线 | 在线观看视频你懂的 | 天天爱天天操 | 国产一区网 | 天天操夜夜想 | 五月婷婷在线视频观看 | 亚洲精品国产第一综合99久久 | 中文字幕在线观看视频一区 | 国产99久久精品一区二区永久免费 | 美女黄频在线观看 | 国产精品麻豆一区二区三区 | 久久久久国产精品一区 | 久久久久久久免费看 | 久久久国产电影 | 深夜国产在线 | 97人人模人人爽人人喊网 | 色在线国产 | 探花视频在线观看 | 欧美一级片在线播放 | 精品麻豆| 久久av免费电影 | 日韩欧美一区二区在线 | 欧美日韩国产在线 | 亚洲一区免费在线 | 国产乱老熟视频网88av | 久久免费视频在线观看 | 亚洲综合色av | 日韩视频1| 亚洲综合色婷婷 | 亚州精品成人 | 麻豆av电影 | 色姑娘综合天天 | 亚洲国产视频直播 | 在线播放日韩 | 免费午夜视频在线观看 | 日韩电影在线看 | 在线观看免费日韩 | 亚洲少妇激情 | 99精品国产免费久久久久久下载 | 亚洲视频久久久 | 九九视频在线观看视频6 | 亚洲黄色片| 亚洲精品国偷拍自产在线观看蜜桃 | 97视频免费看 | www.福利视频 | av3级在线 | 亚洲一区二区三区精品在线观看 | 99精品在线免费在线观看 | 91久久影院 | 亚州精品在线视频 | 国产精品一区二区三区观看 | 国际精品久久久久 | 婷色在线| 又爽又黄又刺激的视频 | 国产91对白在线播 | 亚洲免费不卡 | 精品毛片一区二区免费看 | 天天激情综合网 | 久久久久国产精品厨房 | 国产精品美女视频网站 | 日日干视频| 四虎影视成人精品国库在线观看 | 天天插天天色 | 99色婷婷| 久久久av电影 | 国产精品久久久久免费 | 射射色| 亚洲精品免费视频 | 国产成人精品一区二区三区在线 | 六月激情 | 免费一级特黄毛大片 | 97人人爽 | 韩国视频一区二区三区 | 黄色小网站在线观看 | 美女视频又黄又免费 | 日韩高清一区在线 | 国产精品成久久久久三级 | 午夜精品福利一区二区 | 麻豆91视频 | 在线 视频 一区二区 | 午夜av不卡| 亚洲一二三久久 | 一区二区三区中文字幕在线 | 成人av免费播放 | a电影免费看 | 午夜私人影院 | 99精品在线免费在线观看 | 久久免费视频精品 | 精品久久久久久久久久久院品网 | 欧美日韩精品影院 | 亚洲 成人 一区 | 久久99国产精品免费网站 | 伊人天堂久久 | 在线精品亚洲 | 亚洲天堂网视频在线观看 | 国产亚洲精品久久久久久电影 | 人人艹视频 | 免费久久网 | 欧美午夜精品久久久久 | 国产最新视频在线观看 | 少妇bbbb| 97视频中文字幕 | www.黄色片网站 | 亚洲国产剧情 | 9在线观看免费高清完整版在线观看明 | 亚欧日韩av | 国产精品永久久久久久久久久 | 成人丁香花 | 精品国产欧美 | 天天干天天操天天 | 97夜夜澡人人爽人人免费 | 九九99靖品 | 亚洲激情中文 | 91精品久久香蕉国产线看观看 | 伊人国产在线观看 | 天天久久综合 | 亚洲中字幕 | 国产精品久久久免费 | 天天天天天天天天操 | 久久久资源 | 韩国av免费观看 | 丁香五月亚洲综合在线 | 美女网站色| 免费久久99精品国产 | 精品视频免费 | 日韩欧美精品在线视频 | 久久精品波多野结衣 | 国产欧美中文字幕 | 99re8这里有精品热视频免费 | 久久久久久久久免费视频 | 欧美三级高清 | 久久超级碰 |