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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cv mat的shape_pybind11—opencv图像处理(numpy数据交换)

發布時間:2023/12/20 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cv mat的shape_pybind11—opencv图像处理(numpy数据交换) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

C++ opencv中圖像和矩陣的表示采用Mat類,比如imread()讀取的結果就是返回一個Mat對象。對于python而言,numpy 通常用于矩陣運算, 矩陣,圖像表示為numpy.ndarray類。

因此,想要將python numpy.ndarray的數據傳遞到C++ opencv Mat, 或者C++ Mat將數據返回到python numpy.ndarray, 核心問題——如何綁定Mat

C++

main.cpp

#include

#include

#include

#include

#include

#include

#include"mat_warper.h"

namespace py = pybind11;

py::array_t test_rgb_to_gray(py::array_t& input) {

cv::Mat img_rgb = numpy_uint8_3c_to_cv_mat(input);

cv::Mat dst;

cv::cvtColor(img_rgb, dst, cv::COLOR_RGB2GRAY);

return cv_mat_uint8_1c_to_numpy(dst);

}

py::array_t test_gray_canny(py::array_t& input) {

cv::Mat src = numpy_uint8_1c_to_cv_mat(input);

cv::Mat dst;

cv::Canny(src, dst, 30, 60);

return cv_mat_uint8_1c_to_numpy(dst);

}

/*

@return Python list

*/

py::list test_pyramid_image(py::array_t& input) {

cv::Mat src = numpy_uint8_1c_to_cv_mat(input);

std::vector<:mat> dst;

cv::buildPyramid(src, dst, 4);

py::list out;

for (int i = 0; i < dst.size(); i++)

{

out.append<:array_t char>>(cv_mat_uint8_1c_to_numpy(dst.at(i)));

}

return out;

}

PYBIND11_MODULE(cv_demo1, m) {

m.doc() = "Simple opencv demo";

m.def("test_rgb_to_gray", &test_rgb_to_gray);

m.def("test_gray_canny", &test_gray_canny);

m.def("test_pyramid_image", &test_pyramid_image);

}

mat_warper.h

#ifndef MAT_WARPER_H_

#include

#include

#include

namespace py = pybind11;

cv::Mat numpy_uint8_1c_to_cv_mat(py::array_t& input);

cv::Mat numpy_uint8_3c_to_cv_mat(py::array_t& input);

py::array_t cv_mat_uint8_1c_to_numpy(cv::Mat & input);

py::array_t cv_mat_uint8_3c_to_numpy(cv::Mat & input);

#endif // !MAT_WARPER_H_

mat_warper.cpp

#include"mat_warper.h"

#include

/*

Python->C++ Mat

*/

cv::Mat numpy_uint8_1c_to_cv_mat(py::array_t& input) {

if (input.ndim() != 2)

throw std::runtime_error("1-channel image must be 2 dims ");

py::buffer_info buf = input.request();

cv::Mat mat(buf.shape[0], buf.shape[1], CV_8UC1, (unsigned char*)buf.ptr);

return mat;

}

cv::Mat numpy_uint8_3c_to_cv_mat(py::array_t& input) {

if (input.ndim() != 3)

throw std::runtime_error("3-channel image must be 3 dims ");

py::buffer_info buf = input.request();

cv::Mat mat(buf.shape[0], buf.shape[1], CV_8UC3, (unsigned char*)buf.ptr);

return mat;

}

/*

C++ Mat ->numpy

*/

py::array_t cv_mat_uint8_1c_to_numpy(cv::Mat& input) {

py::array_t dst = py::array_t({ input.rows,input.cols }, input.data);

return dst;

}

py::array_t cv_mat_uint8_3c_to_numpy(cv::Mat& input) {

py::array_t dst = py::array_t({ input.rows,input.cols,3}, input.data);

return dst;

}

//PYBIND11_MODULE(cv_mat_warper, m) {

//

// m.doc() = "OpenCV Mat -> Numpy.ndarray warper";

//

// m.def("numpy_uint8_1c_to_cv_mat", &numpy_uint8_1c_to_cv_mat);

// m.def("numpy_uint8_1c_to_cv_mat", &numpy_uint8_1c_to_cv_mat);

//

//

//}

python中測試

python代碼

import cv2

import matplotlib.pyplot as plt

import demo11.cv_demo1 as cv_demo1

import numpy as np

image_rgb = cv2.imread('F:\\lena\\lena_rgb.jpg', cv2.IMREAD_UNCHANGED)

image_gray = cv2.imread('F:\\lena\\lena_gray.jpg', cv2.IMREAD_UNCHANGED)

var1 = cv_demo1.test_rgb_to_gray(image_rgb)

print(var1.shape)

plt.figure('rgb-gray')

plt.imshow(var1, cmap=plt.gray())

var2 = cv_demo1.test_gray_canny(image_gray)

plt.figure('canny')

plt.imshow(var2, cmap=plt.gray())

var3 = cv_demo1.test_pyramid_image(image_gray)

var3 = var3[1:]

plt.figure('pyramid_demo')

for i, image in enumerate(var3, 1):

plt.subplot(2, 2, i)

plt.axis('off')

plt.imshow(image, cmap=plt.gray())

plt.show()

測試圖像:

RGB圖像

rgb.jpg

GRAY灰度圖像

lena_gray.jpg

結果

RGB轉GRAY

image.png

灰度圖像Canny邊緣檢測

image.png

圖像金字塔

image.png

Demo2

C++

#include

#include

#include

#include

#include

#include

#include "ndarray_converter.h"

namespace py = pybind11;

void show_image(cv::Mat image)

{

cv::imshow("image_from_Cpp", image);

cv::waitKey(0);

}

cv::Mat read_image(std::string image_name)

{

cv::Mat image = cv::imread(image_name, CV_LOAD_IMAGE_COLOR);

return image;

}

cv::Mat passthru(cv::Mat image)

{

return image;

}

cv::Mat cloneimg(cv::Mat image)

{

return image.clone();

}

cv::Mat gaussian_blur_demo(cv::Mat& image) {

cv::Mat dst;

cv::GaussianBlur(image, dst, cv::Size(7, 7),1.5,1.5);

return dst;

}

cv::Mat image_filter(cv::Mat& image, cv::Mat& kernel){

cv::Mat dst;

cv::filter2D(image, dst, -1, kernel);

return dst;

}

PYBIND11_MODULE(example,m)

{

NDArrayConverter::init_numpy();

m.def("read_image", &read_image, "A function that read an image",

py::arg("image"));

m.def("show_image", &show_image, "A function that show an image",

py::arg("image"));

m.def("passthru", &passthru, "Passthru function", py::arg("image"));

m.def("clone", &cloneimg, "Clone function", py::arg("image"));

m.def("gaussian_blur_demo", &gaussian_blur_demo);

m.def("image_filter", &image_filter);

}

convert_.h

# ifndef __NDARRAY_CONVERTER_H__

# define __NDARRAY_CONVERTER_H__

#include

#include

class NDArrayConverter {

public:

// must call this first, or the other routines don't work!

static bool init_numpy();

static bool toMat(PyObject* o, cv::Mat &m);

static PyObject* toNDArray(const cv::Mat& mat);

};

//

// Define the type converter

//

#include

namespace pybind11 { namespace detail {

template <> struct type_caster<:mat> {

public:

PYBIND11_TYPE_CASTER(cv::Mat, _("numpy.ndarray"));

bool load(handle src, bool) {

return NDArrayConverter::toMat(src.ptr(), value);

}

static handle cast(const cv::Mat &m, return_value_policy, handle defval) {

return handle(NDArrayConverter::toNDArray(m));

}

};

}} // namespace pybind11::detail

# endif

cpp

// borrowed in spirit from https://github.com/yati-sagade/opencv-ndarray-conversion

// MIT License

#include "ndarray_converter.h"

#define NPY_NO_DEPRECATED_API NPY_1_15_API_VERSION

#include

#if PY_VERSION_HEX >= 0x03000000

#define PyInt_Check PyLong_Check

#define PyInt_AsLong PyLong_AsLong

#endif

struct Tmp {

const char * name;

Tmp(const char * name ) : name(name) {}

};

Tmp info("return value");

bool NDArrayConverter::init_numpy() {

// this has to be in this file, since PyArray_API is defined as static

import_array1(false);

return true;

}

/*

* The following conversion functions are taken/adapted from OpenCV's cv2.cpp file

* inside modules/python/src2 folder (OpenCV 3.1.0)

*/

static PyObject* opencv_error = 0;

static int failmsg(const char *fmt, ...)

{

char str[1000];

va_list ap;

va_start(ap, fmt);

vsnprintf(str, sizeof(str), fmt, ap);

va_end(ap);

PyErr_SetString(PyExc_TypeError, str);

return 0;

}

class PyAllowThreads

{

public:

PyAllowThreads() : _state(PyEval_SaveThread()) {}

~PyAllowThreads()

{

PyEval_RestoreThread(_state);

}

private:

PyThreadState* _state;

};

class PyEnsureGIL

{

public:

PyEnsureGIL() : _state(PyGILState_Ensure()) {}

~PyEnsureGIL()

{

PyGILState_Release(_state);

}

private:

PyGILState_STATE _state;

};

#define ERRWRAP2(expr) \

try \

{ \

PyAllowThreads allowThreads; \

expr; \

} \

catch (const cv::Exception &e) \

{ \

PyErr_SetString(opencv_error, e.what()); \

return 0; \

}

using namespace cv;

class NumpyAllocator : public MatAllocator

{

public:

NumpyAllocator() { stdAllocator = Mat::getStdAllocator(); }

~NumpyAllocator() {}

UMatData* allocate(PyObject* o, int dims, const int* sizes, int type, size_t* step) const

{

UMatData* u = new UMatData(this);

u->data = u->origdata = (uchar*)PyArray_DATA((PyArrayObject*) o);

npy_intp* _strides = PyArray_STRIDES((PyArrayObject*) o);

for( int i = 0; i < dims - 1; i++ )

step[i] = (size_t)_strides[i];

step[dims-1] = CV_ELEM_SIZE(type);

u->size = sizes[0]*step[0];

u->userdata = o;

return u;

}

UMatData* allocate(int dims0, const int* sizes, int type, void* data, size_t* step, int flags, UMatUsageFlags usageFlags) const

{

if( data != 0 )

{

CV_Error(Error::StsAssert, "The data should normally be NULL!");

// probably this is safe to do in such extreme case

return stdAllocator->allocate(dims0, sizes, type, data, step, flags, usageFlags);

}

PyEnsureGIL gil;

int depth = CV_MAT_DEPTH(type);

int cn = CV_MAT_CN(type);

const int f = (int)(sizeof(size_t)/8);

int typenum = depth == CV_8U ? NPY_UBYTE : depth == CV_8S ? NPY_BYTE :

depth == CV_16U ? NPY_USHORT : depth == CV_16S ? NPY_SHORT :

depth == CV_32S ? NPY_INT : depth == CV_32F ? NPY_FLOAT :

depth == CV_64F ? NPY_DOUBLE : f*NPY_ULONGLONG + (f^1)*NPY_UINT;

int i, dims = dims0;

cv::AutoBuffer _sizes(dims + 1);

for( i = 0; i < dims; i++ )

_sizes[i] = sizes[i];

if( cn > 1 )

_sizes[dims++] = cn;

PyObject* o = PyArray_SimpleNew(dims, _sizes, typenum);

if(!o)

CV_Error_(Error::StsError, ("The numpy array of typenum=%d, ndims=%d can not be created", typenum, dims));

return allocate(o, dims0, sizes, type, step);

}

bool allocate(UMatData* u, int accessFlags, UMatUsageFlags usageFlags) const

{

return stdAllocator->allocate(u, accessFlags, usageFlags);

}

void deallocate(UMatData* u) const

{

if(!u)

return;

PyEnsureGIL gil;

CV_Assert(u->urefcount >= 0);

CV_Assert(u->refcount >= 0);

if(u->refcount == 0)

{

PyObject* o = (PyObject*)u->userdata;

Py_XDECREF(o);

delete u;

}

}

const MatAllocator* stdAllocator;

};

NumpyAllocator g_numpyAllocator;

bool NDArrayConverter::toMat(PyObject *o, Mat &m)

{

bool allowND = true;

if(!o || o == Py_None)

{

if( !m.data )

m.allocator = &g_numpyAllocator;

return true;

}

if( PyInt_Check(o) )

{

double v[] = {static_cast(PyInt_AsLong((PyObject*)o)), 0., 0., 0.};

m = Mat(4, 1, CV_64F, v).clone();

return true;

}

if( PyFloat_Check(o) )

{

double v[] = {PyFloat_AsDouble((PyObject*)o), 0., 0., 0.};

m = Mat(4, 1, CV_64F, v).clone();

return true;

}

if( PyTuple_Check(o) )

{

int i, sz = (int)PyTuple_Size((PyObject*)o);

m = Mat(sz, 1, CV_64F);

for( i = 0; i < sz; i++ )

{

PyObject* oi = PyTuple_GET_ITEM(o, i);

if( PyInt_Check(oi) )

m.at(i) = (double)PyInt_AsLong(oi);

else if( PyFloat_Check(oi) )

m.at(i) = (double)PyFloat_AsDouble(oi);

else

{

failmsg("%s is not a numerical tuple", info.name);

m.release();

return false;

}

}

return true;

}

if( !PyArray_Check(o) )

{

failmsg("%s is not a numpy array, neither a scalar", info.name);

return false;

}

PyArrayObject* oarr = (PyArrayObject*) o;

bool needcopy = false, needcast = false;

int typenum = PyArray_TYPE(oarr), new_typenum = typenum;

int type = typenum == NPY_UBYTE ? CV_8U :

typenum == NPY_BYTE ? CV_8S :

typenum == NPY_USHORT ? CV_16U :

typenum == NPY_SHORT ? CV_16S :

typenum == NPY_INT ? CV_32S :

typenum == NPY_INT32 ? CV_32S :

typenum == NPY_FLOAT ? CV_32F :

typenum == NPY_DOUBLE ? CV_64F : -1;

if( type < 0 )

{

if( typenum == NPY_INT64 || typenum == NPY_UINT64 || typenum == NPY_LONG )

{

needcopy = needcast = true;

new_typenum = NPY_INT;

type = CV_32S;

}

else

{

failmsg("%s data type = %d is not supported", info.name, typenum);

return false;

}

}

#ifndef CV_MAX_DIM

const int CV_MAX_DIM = 32;

#endif

int ndims = PyArray_NDIM(oarr);

if(ndims >= CV_MAX_DIM)

{

failmsg("%s dimensionality (=%d) is too high", info.name, ndims);

return false;

}

int size[CV_MAX_DIM+1];

size_t step[CV_MAX_DIM+1];

size_t elemsize = CV_ELEM_SIZE1(type);

const npy_intp* _sizes = PyArray_DIMS(oarr);

const npy_intp* _strides = PyArray_STRIDES(oarr);

bool ismultichannel = ndims == 3 && _sizes[2] <= CV_CN_MAX;

for( int i = ndims-1; i >= 0 && !needcopy; i-- )

{

// these checks handle cases of

// a) multi-dimensional (ndims > 2) arrays, as well as simpler 1- and 2-dimensional cases

// b) transposed arrays, where _strides[] elements go in non-descending order

// c) flipped arrays, where some of _strides[] elements are negative

// the _sizes[i] > 1 is needed to avoid spurious copies when NPY_RELAXED_STRIDES is set

if( (i == ndims-1 && _sizes[i] > 1 && (size_t)_strides[i] != elemsize) ||

(i < ndims-1 && _sizes[i] > 1 && _strides[i] < _strides[i+1]) )

needcopy = true;

}

if( ismultichannel && _strides[1] != (npy_intp)elemsize*_sizes[2] )

needcopy = true;

if (needcopy)

{

//if (info.outputarg)

//{

// failmsg("Layout of the output array %s is incompatible with cv::Mat (step[ndims-1] != elemsize or step[1] != elemsize*nchannels)", info.name);

// return false;

//}

if( needcast ) {

o = PyArray_Cast(oarr, new_typenum);

oarr = (PyArrayObject*) o;

}

else {

oarr = PyArray_GETCONTIGUOUS(oarr);

o = (PyObject*) oarr;

}

_strides = PyArray_STRIDES(oarr);

}

// Normalize strides in case NPY_RELAXED_STRIDES is set

size_t default_step = elemsize;

for ( int i = ndims - 1; i >= 0; --i )

{

size[i] = (int)_sizes[i];

if ( size[i] > 1 )

{

step[i] = (size_t)_strides[i];

default_step = step[i] * size[i];

}

else

{

step[i] = default_step;

default_step *= size[i];

}

}

// handle degenerate case

if( ndims == 0) {

size[ndims] = 1;

step[ndims] = elemsize;

ndims++;

}

if( ismultichannel )

{

ndims--;

type |= CV_MAKETYPE(0, size[2]);

}

if( ndims > 2 && !allowND )

{

failmsg("%s has more than 2 dimensions", info.name);

return false;

}

m = Mat(ndims, size, type, PyArray_DATA(oarr), step);

m.u = g_numpyAllocator.allocate(o, ndims, size, type, step);

m.addref();

if( !needcopy )

{

Py_INCREF(o);

}

m.allocator = &g_numpyAllocator;

return true;

}

PyObject* NDArrayConverter::toNDArray(const cv::Mat& m)

{

if( !m.data )

Py_RETURN_NONE;

Mat temp, *p = (Mat*)&m;

if(!p->u || p->allocator != &g_numpyAllocator)

{

temp.allocator = &g_numpyAllocator;

ERRWRAP2(m.copyTo(temp));

p = &temp;

}

PyObject* o = (PyObject*)p->u->userdata;

Py_INCREF(o);

return o;

}

Gaussian模糊

image.png

Sobel算子

image.png

image.png

直線檢測

image.png

總結

以上是生活随笔為你收集整理的cv mat的shape_pybind11—opencv图像处理(numpy数据交换)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

爱爱av在线| 丁香婷婷成人 | 天天摸天天操天天爽 | 在线观看国产一区二区 | 国产精品嫩草影院123 | av免费在线播放 | 偷拍区另类综合在线 | 开心婷婷色 | 在线视频观看亚洲 | 久久99免费视频 | 精品国产片 | av资源免费在线观看 | 日韩精品影视 | 国产精品国产三级国产专区53 | 麻豆极品 | 久9在线 | 热re99久久精品国产99热 | 午夜精品三区 | 午夜精品久久久久久久99 | 国产精品毛片完整版 | 日本精品视频在线播放 | www免费网站在线观看 | av不卡中文字幕 | 久免费 | 久久久精品国产免费观看一区二区 | 国产在线日韩 | 欧美精品天堂 | 国产精品中文久久久久久久 | 久久久久久久综合色一本 | 天天操天天曰 | 久操视频在线播放 | 国产成人av综合色 | 狠狠激情中文字幕 | 在线观看91久久久久久 | 999在线视频 | 色噜噜日韩精品一区二区三区视频 | 久久久久久久网 | 亚洲精品字幕 | 天天爽综合网 | 91看片在线看片 | 中文电影网 | 久久综合给合久久狠狠色 | 国产精品久久久久久久婷婷 | 欧美性猛片, | 欧美va天堂在线电影 | 激情五月婷婷综合网 | 九九免费在线观看视频 | 一区二区三区 中文字幕 | 在线观看日韩av | 中文字幕日韩一区二区三区不卡 | 久久婷婷精品视频 | av在观看 | 亚洲精品无 | 国产91精品欧美 | 国产亚洲免费的视频看 | 国产免费xvideos视频入口 | 国产视频精品网 | 久久久久久不卡 | 色久综合| 亚洲成年人免费网站 | 98涩涩国产露脸精品国产网 | 在线视频专区 | 国产一级精品视频 | 中文字幕亚洲精品日韩 | 国产精品白丝jk白祙 | 国内精自线一二区永久 | 色爱成人网| 欧美精品久久久久久久久久白贞 | 午夜久久网站 | 国产在线观看a | 精品国产电影 | 国偷自产视频一区二区久 | av黄色免费网站 | 国产糖心vlog在线观看 | av在线成人 | 日韩大片在线免费观看 | 黄色小说在线免费观看 | 国产成人精品久久久久蜜臀 | 精品久久久久久综合 | 中文字幕在线有码 | 亚洲日韩中文字幕在线播放 | 久久99精品久久久久久秒播蜜臀 | 国产小视频在线免费观看视频 | 亚洲欧美日韩国产精品一区午夜 | 18女毛片| 亚洲精品美女久久久 | 91精品国产自产在线观看永久 | 一区免费视频 | 国产免费观看久久黄 | 黄色91在线观看 | 国产涩涩网站 | 美女网站视频免费都是黄 | 亚洲欧美日韩国产一区二区 | 日韩不卡高清视频 | 久草在| 一区二区欧美激情 | 在线免费av观看 | 久日精品 | 在线观看完整版 | 国产精品丝袜久久久久久久不卡 | 天天综合网 天天综合色 | 国产91免费在线 | 中文字幕在线观看免费观看 | 色瓜| 一级特黄aaa大片在线观看 | 欧美精品一区在线 | 96精品高清视频在线观看软件特色 | 天天天在线综合网 | 免费在线观看一区二区三区 | 久久69av | 欧美一级乱黄 | 亚洲精品视频在线观看视频 | 免费视频一二三 | 久草在线最新视频 | 精品视频在线观看 | 成人v| 中国一 片免费观看 | 中文永久免费观看 | av大片网站 | 麻豆免费视频观看 | 狠狠地日 | 激情深爱.com | 在线黄色国产电影 | 精品少妇一区二区三区在线 | 午夜免费电影院 | 456成人精品影院 | 黄色视屏在线免费观看 | 免费观看性生交 | 国产黄色片一级三级 | 性色视频在线 | 国产乱对白刺激视频在线观看女王 | 午夜av一区 | 久久久福利视频 | 久免费 | 8x成人免费视频 | 国产色道 | 成人久久 | 在线视频专区 | 在线观看91| a在线观看国产 | av中文字幕在线观看网站 | 色.www| 99视频国产精品 | 精品在线免费视频 | 久久国产亚洲 | 激情开心站| 日本少妇久久久 | 亚洲专区中文字幕 | 亚洲最新精品 | 精品视频免费播放 | 国产色视频 | 日韩在线观看影院 | 一色屋精品视频在线观看 | 99精品久久久久 | 国产日韩欧美网站 | 欧美日韩一区二区三区在线免费观看 | 午夜视频在线观看一区二区三区 | 天天插视频 | 久久精品国产精品亚洲 | 日日日日日 | 国产精品久久久777 成人手机在线视频 | 99精品视频在线看 | 手机av资源 | 91毛片在线 | 香蕉久久久久久久 | 国产精品二区三区 | 狠狠狠狠狠狠狠狠 | www.夜夜爽 | 毛片网站在线观看 | 日韩精品一区二区三区在线播放 | 日韩在线电影一区二区 | 996久久国产精品线观看 | 亚洲精品在线视频网站 | 天天干天天做 | 日本公妇在线观看高清 | 国产精品一区二区久久精品爱涩 | 欧美一区二区三区在线播放 | 国产日产精品一区二区三区四区的观看方式 | 五月激情久久 | 免费色视频网站 | 亚洲开心激情 | 97超碰福利久久精品 | 午夜视频在线观看一区二区三区 | 久久艹国产视频 | 在线观看一区 | 久久精品国产一区二区三 | 亚洲天天在线 | 国产日韩中文字幕 | 国产精品 中文在线 | 亚洲国产操 | 欧美色婷| 久久精品国产亚洲精品2020 | 久久国产高清 | 国产一性一爱一乱一交 | 麻豆国产精品一区二区三区 | 人人草人 | 亚洲九九爱 | 在线中文视频 | 91欧美日韩国产 | 在线播放亚洲 | 日日天天狠狠 | 香蕉蜜桃视频 | 亚洲国产偷 | 成人在线播放av | 久久精品99精品国产香蕉 | 久草精品视频在线看网站免费 | 91福利影院在线观看 | 激情婷婷在线观看 | 国产一级片直播 | 狠狠ri| www五月天婷婷 | 久久老司机精品视频 | 欧美色噜噜 | 欧洲视频一区 | 在线观看视频一区二区三区 | 中文字幕 国产视频 | 激情视频免费在线 | 国产亚洲精品久久久久秋 | 青青视频一区 | 久久1电影院 | 久产久精国产品 | 特级黄录像视频 | 人人爽人人爽人人片 | av电影免费观看 | 成人黄色av免费在线观看 | 激情五月伊人 | 四虎www| 午夜精品一区二区三区在线 | 在线免费视频一区 | 日韩精品中文字幕av | 久久99精品久久久久久久久久久久 | 国产精品久久久久久久毛片 | 婷婷丁香导航 | 国产精品va在线播放 | 日韩av在线不卡 | 男女免费视频观看 | 久久精品成人热国产成 | 亚洲国产视频a | 一区三区视频在线观看 | 成年人免费电影 | 天天操天天弄 | 国产一级做a爱片久久毛片a | 超碰在线人 | 热久精品 | 蜜臀久久99精品久久久无需会员 | 国产一区二区成人 | 六月丁香久久 | 97免费在线观看视频 | 国产 在线 高清 精品 | 亚洲综合视频在线 | 成人免费91 | 天天干天天干天天操 | 成人黄性视频 | 在线亚洲成人 | 国产高清av在线播放 | 久久免费毛片 | 99精品国产99久久久久久福利 | 人人射人人插 | 久久精品一区二区三区国产主播 | 欧洲亚洲女同hd | 综合网中文字幕 | 免费a视频在线观看 | 欧美激情综合五月色丁香小说 | 亚洲精品国产精品国自产在线 | 日韩黄色大片在线观看 | 国产小视频国产精品 | 欧美精品久久久久久久久久久 | 黄色成人91 | 久久黄色免费视频 | 亚洲国产97在线精品一区 | 99免费在线观看视频 | 最新中文字幕在线播放 | 波多野结衣在线播放视频 | 精品伊人久久久 | 少妇按摩av | 欧美精品一区二区免费 | 欧美精品久久久久久久久久丰满 | 成人综合日日夜夜 | www狠狠| 日本久久视频 | 四虎www| 国精产品999国精产 久久久久 | 久久久精品国产一区二区 | 狠狠色噜噜狠狠狠合久 | 最近中文字幕免费av | 国产精品不卡 | 一区二区三区久久精品 | 国产日韩中文字幕在线 | 日日射天天射 | 91丨九色丨高潮 | 国产成人精品一区二区在线 | 最近日本中文字幕 | 国产一区二区在线免费视频 | 夜夜操夜夜干 | 国产色在线 | 999成人国产| 国产91精品在线观看 | 久久午夜色播影院免费高清 | 国产成人精品区 | 黄色精品网站 | 亚洲欧美日韩国产精品一区午夜 | 久久久精品免费观看 | 久草在线一免费新视频 | 亚洲黄电影 | 国产福利网站 | 99精品欧美一区二区三区黑人哦 | 久久久久在线视频 | 日韩欧美精品在线视频 | 日韩av一区二区在线影视 | 欧美日高清视频 | 青草视频网| 伊人资源视频在线 | 国产午夜精品av一区二区 | 日韩三级在线观看 | 国产精品免费久久久久影院仙踪林 | 97精品电影院 | 蜜桃视频日韩 | 午夜18视频在线观看 | 午夜婷婷在线观看 | 日韩 精品 一区 国产 麻豆 | 成人黄色免费在线观看 | 国产精品欧美 | 亚洲一本视频 | 久久综合加勒比 | 美女网站视频色 | 国产亚洲综合性久久久影院 | 天天干天天做天天爱 | av中文字幕日韩 | 国产精品青青 | 国产色 在线 | 欧美午夜精品久久久久久孕妇 | 五月天com | 99精品久久久 | 九九视频在线观看视频6 | 国产精品免费视频久久久 | 国产精品24小时在线观看 | 亚洲a资源| 成年人毛片在线观看 | 国产999精品久久久久久绿帽 | 久久免费a | 国产精品一区二区 91 | 天天操天天干天天爱 | 亚洲欧美日本一区二区三区 | 亚洲涩涩涩涩涩涩 | 精品国产91亚洲一区二区三区www | 制服丝袜天堂 | 国产男女无遮挡猛进猛出在线观看 | 久久国产热 | 国产成人精品国内自产拍免费看 | 在线观看av国产 | 国产一级免费电影 | 欧美日韩高清一区二区 | 91手机电影| 九九综合在线 | 中文字幕在线观看完整版电影 | 2018亚洲男人天堂 | 久久网站最新地址 | 免费下载高清毛片 | 99精品偷拍视频一区二区三区 | 久久精品国产精品亚洲 | 天天操综合 | 中文字幕精品三区 | 亚洲一区二区三区毛片 | 欧美激情综合色 | 视频在线观看日韩 | 国产成人精品一区二区在线观看 | 69国产精品视频 | 欧美日韩在线精品一区二区 | 激情五月网站 | 国产精品爽爽久久久久久蜜臀 | 亚洲精品网址在线观看 | 蜜臀av麻豆 | 精品国产区在线 | 久一在线 | 国产一区二区中文字幕 | 精品国产精品久久 | 亚洲 欧美 精品 | 黄色影院在线免费观看 | 久久私人影院 | 草久久久久 | 超级碰碰碰碰 | 欧美夫妻性生活电影 | 91精品国产自产在线观看 | 一级性视频| 91亚洲精品久久久久图片蜜桃 | 超碰国产在线观看 | 日韩中文幕 | 蜜桃av人人夜夜澡人人爽 | 久久国产视频网 | 欧美久久综合 | 日韩视频一区二区在线 | 天天干天天天天 | 精品久久久久久亚洲综合网站 | www.五月天色 | 91精品国产亚洲 | 97超碰资源| 在线国产不卡 | 五月导航| 国产精品视频区 | 色综合天天视频在线观看 | 精品国产伦一区二区三区观看体验 | 国产精品粉嫩 | 欧美最猛性xxxxx(亚洲精品) | 特黄特色特刺激视频免费播放 | 亚洲爱视频 | 青青草国产精品视频 | 在线综合 亚洲 欧美在线视频 | 97**国产露脸精品国产 | 69国产盗摄一区二区三区五区 | 四虎在线视频 | 在线观看免费视频你懂的 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 激情婷婷综合网 | 色综合久久中文字幕综合网 | 中文字幕在线国产 | 91精品视频一区二区三区 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 久久久久久久影视 | 国产精品久久av | 青草视频在线免费 | 国产女人18毛片水真多18精品 | 成人午夜黄色影院 | 国产欧美久久久精品影院 | 久久精品永久免费 | 婷婷av电影 | 精品国产一区二区三区久久影院 | 欧美经典久久 | 欧美日韩久久不卡 | 久久在线免费 | 国产在线视频一区二区三区 | 久久99在线| av资源免费观看 | www.夜夜| 黄色软件在线看 | 波多在线视频 | 91久久丝袜国产露脸动漫 | 五月婷婷六月丁香在线观看 | 免费看片网址 | 成人福利av| 成年人国产视频 | 久久精品伊人 | 中文区中文字幕免费看 | 天天操夜夜曰 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 在线观看av免费观看 | 天天亚洲综合 | 国产高清av在线播放 | 91麻豆国产 | 亚洲午夜久久久久久久久久久 | 国产无吗一区二区三区在线欢 | 成人黄色av免费在线观看 | 97av在线视频 | 国产成人福利片 | 色综合天天做天天爱 | 欧美激情视频一二三区 | 亚洲视频在线免费看 | www.色国产 | 国产精品福利小视频 | 国产精品高潮呻吟久久av无 | 欧美一二三四在线 | 久久精品99精品国产香蕉 | 99re视频在线观看 | 久久高清av | 欧美国产日韩一区二区 | 久久午夜网 | 91视频-88av | 99久热在线精品 | 人人干人人干人人干 | 999久久久久久久久 69av视频在线观看 | 天天操天天操天天操天天操天天操天天操 | 久久久久综合精品福利啪啪 | 国产精品美女久久久久久免费 | 国产一区二区在线播放视频 | 911在线 | 亚洲我射av| 色在线亚洲| 日韩精品欧美一区 | 欧美精品一区二区三区四区在线 | 国产黄免费在线观看 | 一区二区三区 中文字幕 | 亚洲 综合 激情 | 香蕉视频免费看 | 国产成人一级电影 | 麻豆国产视频 | 亚洲午夜久久久久久久久久久 | 久久精品国产亚洲 | 国产亚洲视频在线免费观看 | 久久久久国产精品免费 | 丁香婷婷深情五月亚洲 | 91看片成人 | 欧美一级特黄aaaaaa大片在线观看 | 久草在线视频国产 | 国产视频久 | 久久久国产精品电影 | 91禁在线观看 | 热re99久久精品国产99热 | 懂色av懂色av粉嫩av分享吧 | 国产亚洲精品美女久久 | 亚洲午夜剧场 | 激情综合网婷婷 | www.亚洲精品视频 | 国产v在线播放 | 黄p网站在线观看 | 久久亚洲影院 | 国产毛片久久 | 亚洲精品国产品国语在线 | 国产精品乱码久久久久 | 在线精品观看 | 亚欧日韩av | 激情动态| 国产精品久久久久久久久久直播 | 国产一区国产二区在线观看 | 欧美福利片在线观看 | 丁香色天天| 中文在线字幕观看电影 | 日日夜夜狠狠操 | 日本资源中文字幕在线 | 在线观看日韩专区 | 精品视频中文字幕 | 国产成人在线观看免费 | 久久精品国产一区 | 91看片在线免费观看 | 亚洲永久精品在线观看 | 玖玖在线看 | 在线观看中文av | 制服丝袜在线91 | 视频福利在线观看 | 色网站在线免费 | 亚洲第一中文字幕 | 中文在线中文资源 | 最新中文字幕 | 成 人 黄 色 视频 免费观看 | 成人一区二区三区在线 | 美女激情影院 | 天天插天天狠 | 国产高清专区 | 日韩三级免费 | 亚洲狠狠操 | 麻豆国产视频下载 | 91精品999 | 国内外成人在线 | 婷婷丁香色| 日日干精品 | 久久欧洲视频 | 最新中文字幕视频 | 国产网红在线 | 蜜臀av夜夜澡人人爽人人桃色 | 99热在线这里只有精品 | 91精品免费在线观看 | 亚洲综合情| 日日草视频 | 久久综合福利 | 亚洲精品videossex少妇 | 能在线看的av | 日韩视频图片 | 日韩av播放在线 | 三级av黄色 | 激情网五月婷婷 | 六月婷婷色| 91色在线观看视频 | 免费观看第二部31集 | 国产xx视频 | a天堂免费 | 亚洲国产无 | 亚洲精品在线观看免费 | 最近中文字幕免费观看 | www四虎影院| 午夜久久美女 | 午夜美女视频 | 操高跟美女 | 国产精品免费久久久久久久久久中文 | 91丨九色丨国产在线观看 | a√天堂资源 | 欧美日韩一级久久久久久免费看 | 成人91在线 | 日韩视频一区二区 | 日韩高清不卡一区二区三区 | 欧美一级片在线免费观看 | 中文字幕免费高清 | 国产午夜免费视频 | a级国产乱理伦片在线观看 亚洲3级 | 波多野结衣在线观看一区二区三区 | 99爱视频 | 精品福利av | 黄色三级在线观看 | 最新av在线网址 | 91av小视频| 欧美一区二视频在线免费观看 | 亚洲一级电影在线观看 | 在线视频免费观看 | 911国产精品 | 亚洲精品在线观看免费 | 色香天天 | 在线日韩 | 一级一级一片免费 | 欧美a级免费视频 | 婷婷激情在线观看 | 免费在线观看日韩欧美 | 国产麻豆精品在线观看 | 国产在线观 | 四虎影视久久久 | 日本夜夜草视频网站 | 免费久久99精品国产婷婷六月 | 911亚洲精品第一 | 婷婷丁香国产 | 美女在线免费视频 | 中文字幕在线播放一区二区 | 色综合久久久久久久 | 日韩女同一区二区三区在线观看 | 依人成人综合网 | 久草线 | 久久伦理网 | 婷五月天激情 | 亚洲综合色视频 | 日本精品视频网站 | av综合 日韩 | 国产在线精品一区二区 | 天天曰夜夜爽 | av网址最新| 丁香婷婷色月天 | 色婷婷在线观看视频 | 亚洲色图色 | 伊人伊成久久人综合网小说 | 日韩成人免费在线观看 | 麻豆精品视频在线观看免费 | 亚洲精品国产第一综合99久久 | 日日干av | 福利视频入口 | 国内精品久久久久久久久久 | 日韩在线观看中文 | 国产精品久久久久久久久久久免费看 | 黄色一级网 | 97av精品 | 在线国产中文字幕 | 国产又粗又猛又色又黄网站 | 国产91在线观 | 欧美日韩啪啪 | 中国一级特黄毛片大片久久 | a久久久久久| 国产一区二区视频在线播放 | 成人播放器 | 91精品国自产在线偷拍蜜桃 | 国产99久久九九精品 | 成人免费网视频 | 日韩欧美电影在线 | 狠狠搞,com | 午夜10000| 国产精品黄网站在线观看 | 亚洲成人资源在线观看 | 天天爽夜夜爽人人爽曰av | 中文字幕乱偷在线 | 精品亚洲欧美无人区乱码 | 中文字幕第一页在线 | 国产精品精品久久久久久 | 久久色中文字幕 | 亚洲精品视频在线观看免费 | 国产一级在线 | 91中文字幕视频 | 少妇高潮流白浆在线观看 | 日韩一区二区三免费高清在线观看 | 日韩二区三区在线 | 欧美一级片在线 | 五月天婷婷在线观看视频 | 手机看国产毛片 | 91视频在线观看免费 | 亚洲精品国偷拍自产在线观看蜜桃 | 精品一区二区av | 91av在线看 | 国产精品自在线拍国产 | 91成版人在线观看入口 | 色网av| 欧美一级视频免费看 | 深夜免费福利 | 国产精品久久久久三级 | 精品国产电影一区二区 | 国产精品成人av久久 | 麻豆传媒在线视频 | 青青河边草免费观看完整版高清 | 欧美日韩国产在线观看 | 亚洲国产午夜 | 亚洲最新av在线 | 麻豆久久一区二区 | 激情一区二区三区欧美 | 成年人在线视频观看 | 国产视频午夜 | 国产精品久久久久久久久毛片 | 999成人 | 亚洲高清视频在线观看 | 亚洲综合色丁香婷婷六月图片 | 99免费在线播放99久久免费 | www国产亚洲精品久久麻豆 | 在线观看av片 | 国产伦精品一区二区三区照片91 | 9在线观看免费高清完整版 玖玖爱免费视频 | 少妇性bbb搡bbb爽爽爽欧美 | 最新国产在线观看 | 日韩精品视频久久 | 久久黄网站 | av看片在线观看 | 天天碰天天操 | 国产精品国产亚洲精品看不卡15 | 国产精品二区在线观看 | 午夜视频在线观看一区 | 国产a视频免费观看 | 91av影视| 午夜精品久久一牛影视 | 97视频免费在线 | 一区二区三区四区免费视频 | 日韩精品一区二区在线观看 | 欧美日韩午夜在线 | 99精品国产一区二区三区不卡 | 日韩综合一区二区 | 在线免费看片 | 人人藻人人澡人人爽 | 中文字幕免费久久 | 又色又爽又黄高潮的免费视频 | 91在线麻豆 | 99久久精品国产毛片 | 在线观看免费av网站 | 中文在线字幕观看电影 | www.久久色| 日韩精品免费在线播放 | 成人久久影院 | 日韩精品无码一区二区三区 | 久久精品欧美一区二区三区麻豆 | 国产原厂视频在线观看 | 亚洲综合视频在线 | 五月天伊人 | 日韩久久电影 | 黄色91在线 | 精品黄色在线观看 | 婷婷伊人五月天 | 亚洲精品福利在线观看 | 精品久久片 | 精品久久久久久久久久久久久久久久久久 | 97福利社 | 国产区久久 | 久久久国际精品 | 九色视频网址 | 久久久99国产精品免费 | 免费观看性生交大片3 | 亚洲免费在线视频 | 99在线热播精品免费 | 国产在线一卡 | 午夜久久影视 | 国产一区在线视频播放 | 97视频在线观看免费 | 午夜三级在线 | 国产特级毛片aaaaaaa高清 | 国产视频一区在线 | 国产亚洲午夜高清国产拍精品 | 欧美二区视频 | 色婷婷在线播放 | 97看片 | 91在线视频导航 | 热久久最新地址 | 成人在线一区二区 | 成年人网站免费在线观看 | 成人免费一区二区三区在线观看 | 色在线免费观看 | 又黄又网站 | 狠狠色狠狠色综合日日小说 | 国产精品第72页 | 日本久久免费电影 | 一二三区高清 | 久草免费福利在线观看 | 久99精品 | 欧美在线aa| 91精品999| 久久免费看av| 狠狠色狠狠色合久久伊人 | 亚洲成av人片在线观看 | 久久视频这里有久久精品视频11 | 国产精品久久久久久久7电影 | 国产不卡在线 | 国内精品亚洲 | 国产高清99 | 成人网444ppp| 亚洲春色综合另类校园电影 | 国产一级淫片免费看 | 四虎海外影库www4hu | 国产精品永久久久久久久久久 | 亚洲一级在线观看 | aaa黄色毛片 | 国产在线日韩 | 久久精品一区二区 | 天堂网一区二区 | 激情五月综合 | 国产女教师精品久久av | 成人黄大片| av电影中文字幕在线观看 | 黄色一级大片免费看 | 中文资源在线官网 | 香蕉视频在线免费看 | 一区二区视频播放 | 久99视频 | 日日操操| 久久无码av一区二区三区电影网 | 欧美另类高清 videos | 亚洲精品午夜久久久 | 午夜少妇av | 激情五月在线视频 | 丁香九月婷婷综合 | 激情久久网 | 美女网站视频免费都是黄 | 免费国产在线视频 | 欧美成人猛片 | 亚洲欧洲一级 | 中文国产在线观看 | 国产精品 中文字幕 亚洲 欧美 | 中文字幕 在线看 | 国产精品午夜免费福利视频 | 国产成人一区在线 | 国产精品免费久久久 | 国产99在线免费 | 国产999视频在线观看 | 极品美女被弄高潮视频网站 | 日韩69av | 人人天天夜夜 | 成人h动漫精品一区二 | 国产成人高清 | 三日本三级少妇三级99 | 91麻豆视频网站 | 日躁夜躁狠狠躁2001 | 久久综合狠狠综合久久激情 | 在线免费黄色av | 欧美日韩不卡在线视频 | 日本不卡123区 | 91在线精品播放 | 成人在线免费看 | 免费久久久久久 | 毛片无卡免费无播放器 | 欧美一级久久久 | 人人插人人| 天天爽夜夜爽人人爽曰av | 亚洲欧美婷婷六月色综合 | 久草国产视频 | 精品国产伦一区二区三区 | 玖玖在线免费视频 | 免费在线成人 | 国产一级片视频 | 亚洲精选视频免费看 | 欧美成人精品欧美一级乱黄 | 天天操伊人| 狠狠天天 | 五月婷婷综合久久 | 91大神dom调教在线观看 | 色综合天天做天天爱 | 综合色婷婷 | 亚洲精品tv久久久久久久久久 | 欧美国产日韩在线观看 | 久久这里只有精品视频99 | 亚洲天堂网视频在线观看 | 麻豆精品91| 91九色精品女同系列 | 97日日| 在线亚洲成人 | 嫩草av在线| 国产 日韩 欧美 自拍 | 日日摸日日添夜夜爽97 | 亚洲 欧美 综合 在线 精品 | 国产高清av免费在线观看 | 国产一区视频导航 | 在线观看久草 | 日韩成片 | 四虎影视成人精品国库在线观看 | 天天操天天干天天玩 | 日韩中字在线观看 | 在线观看色视频 | 免费久久网站 | 国内精品国产三级国产aⅴ久 | 人人玩人人添人人澡超碰 | 最近中文字幕大全 | 日韩精品中文字幕av | 成人免费在线网 | 中文字幕亚洲五码 | 日韩综合精品 | 免费精品在线视频 | 国产视频资源在线观看 | 色婷婷免费视频 | 亚洲人xxx| 久久免费国产精品1 | 亚洲另类视频在线 | 国产精品一区二区果冻传媒 | 免费在线一区二区 | 亚洲精品乱码久久久久久写真 | 欧美a级在线免费观看 | 亚洲精品视频国产 | 午夜精品久久久久久久99婷婷 | 91视频在线观看免费 | 成人蜜桃网 | 国产精品久久久久久久久久久久 | 爱av在线网 | 夜夜操网 | 高清中文字幕av | 麻豆成人网 | 精品国产伦一区二区三区观看说明 | 免费看毛片在线 | 91亚洲成人 | 东方av在线免费观看 | 中文字幕五区 | 亚洲精品欧美视频 | 五月婷婷综 | 国产精品福利在线观看 | 91久久黄色 | 日韩资源在线观看 | 狠狠色丁香婷婷综合基地 | 亚洲精品中文字幕在线观看 | 中文字幕 欧美性 | 大胆欧美gogo免费视频一二区 | 免费情趣视频 | 欧美aa级| 一区二区三区高清在线 | 91久久人澡人人添人人爽欧美 | 久草视频网 | 亚洲黄色av一区 | 一区在线观看 | 久爱精品在线 | 中文字幕在线看视频国产中文版 | 四虎精品成人免费网站 | 国产精品 中文在线 | 色香蕉在线 | 久久精品久久久久电影 | 天天插综合网 | 亚洲精品乱码久久久久久蜜桃不爽 | 欧美一级片在线免费观看 | 欧美激情精品久久久久久 | 欧美激情va永久在线播放 | 干干干操操操 | 欧美一二三视频 | 久久看毛片 | 精品产品国产在线不卡 | 亚洲成人资源 | 日韩欧美一区二区三区视频 | 久久人人爽人人爽人人片av免费 | 国产亚洲视频中文字幕视频 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 五月激情久久久 | 成人小视频在线观看免费 | 五月的婷婷 | 久久综合五月 | 亚洲狠狠 | 亚洲午夜激情网 | 中文字幕在线观看亚洲 | 国产视频不卡一区 | 97人人人人 | 99精品一区二区 | 日韩久久精品一区二区三区下载 | 国产视频在线一区二区 | 欧美孕交vivoestv另类 | www.夜夜干.com | 国产成人综合在线观看 | 又黄又网站 | 日本性视频 | 久久午夜剧场 | 91精品综合在线观看 | 天天干天天干天天操 | 色久综合| 一区在线观看 | www国产亚洲 | 色网免费观看 | 在线免费中文字幕 | 中文字幕视频一区二区 | 欧美色就是色 | 国产精品免费小视频 | 91污视频在线 | www五月天com | 久久99久久99免费视频 | 欧美日韩在线精品 | 国内成人精品2018免费看 | 成人动漫一区二区 | 成年人免费观看在线视频 | 国产 日韩 在线 亚洲 字幕 中文 | 久久久福利视频 | 亚洲精区二区三区四区麻豆 | 欧美网址在线观看 | 免费91麻豆精品国产自产在线观看 | 91av免费观看 | 99国产在线视频 | 色婷婷综合久久久中文字幕 | 色视频网站在线 | 免费aa大片 | 天堂av在线中文在线 | 天天射天天干天天插 | 国产福利久久 | 久草在线免费在线观看 | 国产国产人免费人成免费视频 | 狠狠色狠狠色合久久伊人 | 成人在线观看资源 | 99久久婷婷国产 | 日韩黄色大片在线观看 | 亚洲成人免费观看 | 久久免费看av| 99精品乱码国产在线观看 | 亚洲国产福利视频 | 亚洲专区一二三 | 视频1区2区 | 午夜婷婷在线播放 |