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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++中图像处理的类之二 CImg

發布時間:2023/12/31 c/c++ 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++中图像处理的类之二 CImg 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://hi.baidu.com/fengjingge815/item/c44caaf0a7a2601ec6dc45f3

數字圖像處理--CImg類

class CImg??
{
public:
?// 構造函數
?CImg();
?// Copy構造函數
?CImg(CImg& gray);
?// 重載“=”操作符來創建新的對象
?void operator = (CImg& gray); //圖像賦值

?BOOL operator == (CImg& gray); //判斷2幅圖像是否相同
?CImg operator & (CImg& gray); //圖像按位與
?CImg operator | (CImg& gray); //圖像按位或
?CImg operator + (CImg gray); //圖像相加
?CImg operator - (CImg& gray); //圖像減法
?CImg operator ! (); //圖像反色
?

?// 析構函數
?virtual ~CImg();

public:?
?
?// 判斷位圖是否有效
?BOOL IsValidate() { return m_pBMIH != NULL; }

?// 將所有像素的值初始化為color
?void InitPixels(BYTE color);

?// 從文件加載位圖
?BOOL AttachFromFile(LPCTSTR lpcPathName);
?BOOL AttachFromFile(CFile &file);
?// 將位圖保存到文件
?BOOL SaveToFile(LPCTSTR lpcPathName);
?BOOL SaveToFile(CFile &file);

?// 在DC上繪制位圖
?BOOL Draw(CDC* pDC);
?BOOL Draw(CDC* pDC, CRect rt);

?// 設置像素的值
?void SetPixel(int x, int y, COLORREF color);
?// 獲取像素的值
?COLORREF GetPixel(int x, int y);
?// 獲取灰度值
?BYTE GetGray(int x, int y);


?// 獲取一行的字節數
?int GetWidthByte();
?// 獲取一行的像素數
?int GetWidthPixel();
?// 獲取高度
?int GetHeight();

?//改變位圖的尺寸
?void ImResize(int nHeight, int nWidth);
public:

?// 繪畫函數?
?// 繪制直線
?void Line(POINT ptStart, POINT ptEnd);
?void Line(POINT ptStart, int nLen, int nWide, BOOL bHor);
?// 繪制矩形
?void Rectangle(int x, int y, int r = 5);
?void Rectangle(POINT ptLT, int r = 5);
?void Rectangle(POINT ptLT, POINT ptRB);
?void Circle(int x, int y, int r = 5){};

public:
?// 判斷是否是二值圖像
?BOOL IsBinaryImg();
?// 判斷是否是索引圖像
?BOOL IsIndexedImg();
?// 256色索引圖像轉灰度圖像
?bool Index2Gray();

?LPVOID GetColorTable(){return m_lpvColorTable;}
?int GetColorTableEntriesNum(){return m_nColorTableEntries;}
private:
?void CleanUp();?

public:
?// 文件數據
?BITMAPINFOHEADER *m_pBMIH;
?LPBYTE? *m_lpData;
protected:
?int m_nColorTableEntries;
?LPVOID m_lpvColorTable;
};

?

?

下文轉自:http://blog.163.com/xglla_1129/blog/static/81073510201061145439483/

CImg是一個跨平臺的C++的圖像處理庫,提供了加載、處理、顯示、保存等一系列功能,其中的圖像處理功能尤其強大。


CImg是一個跨平臺的C++的圖像處理庫,提供了加載、處理、顯示、保存等一系列功能,其中的圖像處理功能尤其強大。
首先,建議先到這里欣賞一下使用CImg代碼做的Demo,就是它使我這個沒有圖像處理經驗的童鞋也心動得以致于研究了一星期^_^

主頁地址:http://cimg.sourceforge.net/
下載地址:http://cimg.sourceforge.net/download.shtml
下載時注意應該下載源碼包,里面附帶的大量的例程。而實際上CImg庫只是一個頭文件CImg.h,這個頭文件里包含了CImg庫所有的代碼。
另外不要錯過下載列表中的一個部分完成的《CImg中文參考手冊》。

CImg的Hello World

這段代碼是從《CImg參考手冊》里抄的,可以大致了解一下CImg的框架。
以VC為例:新建控制臺程序,輸入下面的代碼。項目屬性的鏈接器附加依賴項加入kernel.lib user32.lib gdi32.lib。最后,把CImg.h拷貝到項目路徑下,即可成功編譯運行

  • #include?"CImg.h"
  • using?namespace?cimg_library;
  • int?main()?
  • {
  • ????//?定義一個每個顏色?8?位(bit)的?640x400?的彩色圖像
  • ????CImg<unsigned?char>?img(640,400,1,3);??
  • ????//將像素值設為?0(黑色)
  • ????img.fill(0);?
  • ????//?定義一個紫色
  • ????unsigned?char?purple[]?=?{?255,0,255?};
  • ????
  • ????//?在坐標(100,?100)處畫一個紫色的“Hello?world”
  • ????img.draw_text(100,100,"Hello?World",purple);??
  • ????//?在一個標題為“My?first?CImg?code”的窗口中顯示這幅圖像
  • ????img.display("My?first?CImg?code");??????????????????
  • ????
  • ????return?0;
  • }?

  • 運行這段代碼,顯示結果:

    在CImg體系中,圖像有x,y,z,v四個軸,前三個當然是3維空間的三個方向(知道了吧?CImg可以處理3維圖像),第四個v一般表示色彩通道數,比如RGB三色就是3。

    上面的代碼每行的注釋已經寫得很詳細,從代碼里可以看出CImg處于namespace cimg_library名空間之下;模板類CImg<>是主要的圖像類,提供了大量的圖像處理方法。

    在CImg庫里,還有一個重要的類是CImgDisplay,它提供了一個顯示窗口,不僅可以顯示CImg的內容,還可以接收鍵盤鼠標事件,我們可以暫時把它看成是一個CImg專用窗體類。

    CImg類介紹

    CImg類提供的方法非常多,為了便于查閱,我用Doxygen重新生成了一份CImg庫的說明文檔,并做成chm格式,可以本文后面找到下載地址。
    CImg模板類提供了圖像的載入、保存、處理功能,是整個庫的核心組件。它的聲明如下:

    template<typename T> struct cimg_library::CImg;
    模板參數T指明CImg中元素的類型。在自帶的參考手冊中稱這些元素為像素(pixel),不過因為這里的像素和我們平時的像素概念稍微有點不同。因為前面說過CImg體系中有xyzv四個軸,CImg手冊稱它為4維圖像,把4維圖像里的單個元素稱為像素。而事實上第四維的v通常就是我們的色彩通道,所以要在屏幕上顯示出一個真正的像素往往要取同一xyz軸上所有v軸的點(所有色彩通道合成一個真正的彩色像素)。在本文中我決定把這個組成圖像的最小單位稱為元素,由所有色彩通道v組成一個像素。

    CImg類中的6個成員變量:
  • //?分別對應x,y,z,v四個軸的大小,即寬度、高度、深度和通道數。
  • unsigned?int?width,?height,?depth,?dim;
  • //?指向內存中的圖像數據
  • T?*data;
  • //?指明data是否是共用的,即是否有data的擁有權。
  • bool?is_shared;
  • CImg類里的成員變量都是public的,我們可以直接存取它們,不過為了防止破壞完整性,建議使用成員方法如dimx(), dimy(), dimz(), dimv() 和ptr()來操作。

    CImg的構造函數,大部分構造函數都很直白,就不列出了,可以查看手冊,下面列出的是一些特殊的構造函數。

  • //?以字符串指定的數據填充,其中的values字符串包含了一串十進制數字表示的數據。
  • //?比如參數values為字符串"20,30,40,50",?repeat_pattern為true時
  • //?圖像內的數據就以20,30,40,50,20,30,40,50,20...填充。
  • CImg?(
  • ????const?unsigned?int?dx,
  • ????const?unsigned?int?dy,
  • ????const?unsigned?int?dz,
  • ????const?unsigned?int?dv,
  • ????const?char?*const?values,
  • ????const?bool?repeat_pattern)

  • //?由shared參數決定是否直接引用img中的data數據還是自己持有一份拷貝(是否共享)
  • CImg?(const?CImg<?T?>?&img,?const?bool?shared)

  • //?參考img的大小構造一個新的CImg對象
  • CImg?(const?CImg<?t?>?&img,?const?char?*const?dimensions)
  • 這個構造函數的dimensions參數由一串數字或轉義符組成,分別對應x,y,z,v的大小。比如:
    參數為"20 20 1 3"時新CImg對象的x,y,z,v的大小分別是20 20 1 3。
    轉義符以%開頭,后綴可以是:

    x, dx, dimx, width 表示img.width y, dy, dimy, height 表示img.height z, dz, dimz, depth 表示img.depth v, dv, dimv, dim 表示img.dim

    比如CImg(img, "%y %x 1 3");可以生成一個和img的寬高正好互換的CImg對象。

  • //?從文件里載入圖像,文件類型由擴展名確定
  • CImg?(const?char?*const?filename)
  • CImg庫本身支持BMP,RAW,HDR,INR,PGM,PPM,PAN,DLM格式
    安裝了ImageMagick(Unix系)后可支持JPG,GIF,PNG,TIF等多種格式
    CImg也能使用jpeg庫,zlib/png庫,tiff庫等來支持多種圖像格式,只需編譯時加入這些庫即可。可以到這里下載這些庫文件。

  • //?從CImgDisplay對象的內容創建圖像
  • CImg?(const?CImgDisplay?&disp)

  • CImg部分成員方法

    CImg提供了豐富的成員方法,在這里全部列出是不可能的,這里只作一些簡單介紹。更多方法請參考手冊。
  • //?賦值,它有多個重載的版本,參數和構造函數一樣,實際上構造函數最終都是調用它來實現的。
  • CImg<?T?>?&??assign?();
  • ?
  • //?把data數據轉交給img,自己不再有data數據的擁有權
  • CImg<?T?>?&??transfer_to?(CImg<?T?>?&img);
  • ?
  • //?清除數據
  • CImg<?T?>?&??clear?();
  • ?
  • //?獲得所有元素總數
  • unsigned?long??size?()?const
  • ?
  • //?獲得某個軸向的大小
  • int??dimx?()?const;
  • int??dimy?()?const;
  • int??dimz?()?const;
  • int??dimv?()?const;
  • ?
  • //?取得遍歷元素的迭代器,這里的iterator其實就是T*。
  • iterator??begin?();
  • iterator??end?();
  • ?
  • //?取得首尾數據
  • T?&??first?();
  • T?&??last?();
  • ?
  • //?取得圖像內部數據(第二個版本取得數據并定位到指定位置)
  • T?*??ptr?();
  • T?*??ptr?(
  • ????const?unsigned?int?x,
  • ????const?unsigned?int?y=0,
  • ????const?unsigned?int?z=0,
  • ????const?unsigned?int?v=0);
  • ?
  • //?快速存取指定位置上的數據
  • T?&??operator()?(
  • ????const?unsigned?int?x,
  • ????const?unsigned?int?y=0,
  • ????const?unsigned?int?z=0,
  • ????const?unsigned?int?v=0);
  • ?
  • //?按索引直接存取data數組
  • T?&??operator[]?(const?unsigned?long?off)
  • ?
  • //?得到指定位置的索引
  • long??offset?(
  • ????const?int?x,
  • ????const?int?y=0,
  • ????const?int?z=0,
  • ????const?int?v=0)?const;
  • ?
  • //?存取指定位置上的數據,當指定的軸的超出邊界時返回最邊上的值
  • T?&??at?(const?int?off);
  • T&?atX(const?int?x,?const?int?y,?const?int?z,?const?int?v);
  • T&?atXY(const?int?x,?const?int?y,?const?int?z,?const?int?v);
  • T&?atXYZ(const?int?x,?const?int?y,?const?int?z,?const?int?v);
  • T&?atXYZV(const?int?x,?const?int?y,?const?int?z,?const?int?v);
  • ?
  • //?存取指定位置上的數據,當指定的軸的超出邊界時返回out_val
  • T?&??at?(const?int?off,?const?T?out_val);
  • T&?atX(const?int?x,?const?int?y,?const?int?z,?const?int?v,?const?T?out_val);
  • T&?atXY(const?int?x,?const?int?y,?const?int?z,?const?int?v,?const?T?out_val);
  • T&?atXYZ(const?int?x,?const?int?y,?const?int?z,?const?int?v,?const?T?out_val);
  • T&?atXYZV(const?int?x,?const?int?y,?const?int?z,?const?int?v,?const?T?out_val);
  • 值得一提的是還有兩種插值版本的at方法,分別是線性插值和三次插值。其中線性插值以linear_作為前綴,三次插值以cubic_作為前綴。參數和上面的類似,只是各軸位置的類型不是int而是float,這批方法會按插值法算出小數點位置上的數據。

    到這里可以發現CImg類實際上提供了類似于vector容器的編程接口,這樣我們的STL算法也能用于CImg的操作了,隨后就可以看到庫里有時也會把CImg類直接當作數據容器來使用。比如下面CImg中就有這個方法:

  • //?返回字符串的形式的圖像中的數據,默認是逗號分隔的一長串數字。
  • //這里返回的CImg<charT>不代表圖像,而是一個一維的字符串數據,這時它只是一個容器而已,可以把它看作是vector<charT>。
  • CImg<?charT?>??value_string?(const?char?separator=',',?const?unsigned?int?max_size=0);
  • ?

    上回介紹了CImg模板類的一些函數,象我這種不在圖像處理行業混的人來說很多術語實在是太專業了-_-,不理不理,看不懂就直接寫測試代碼看它們的作用是什么不就知道啦~~嘿嘿^_^。

    上測試代碼先:

  • #include?"CImg.h"
  • using?namespace?cimg_library;
  • ?
  • int?main()?
  • {
  • ?
  • ????CImg<unsigned?char>?src("test.bmp");
  • ????//?設置原圖大小,貌似haar計算要求圖像寬高是4的倍數
  • ????src.resize(?src.width-src.width%4,?src.height-src.height%4);
  • ????CImgList<unsigned?char>?visu;
  • ????visu
  • ????????<<src.get_crop(0,0,src.width/2,src.height/2)
  • ????????<<src.get_quantize(5)
  • ????????<<src.get_rotate(45,1)
  • ????????<<src.get_permute_axes("yxzv")
  • ????????<<src.get_erode(5)
  • ????????<<src.get_haar()
  • ????????<<src.get_dilate(3)
  • ????????<<src.get_blur(3)
  • ????????<<src.get_noise(3)
  • ????????<<src.get_deriche(3)
  • ????????<<src.get_blur_anisotropic(8)
  • ????????<<src.get_blur_bilateral(1,2)
  • ????????<<src.get_blur_patch(4,3)
  • ????????<<src.get_sharpen(3)
  • ????????<<src.get_blur_median(3)
  • ????????;?//如果愿意可以測試更多CImg的圖像處理方法
  • ???
  • ????//?用來顯示效果
  • ????CImgDisplay?disp(src.width*2,?src.height);
  • ????int?i=0;
  • ????unsigned?char?textcolor[]?=?{?255,255,255?};
  • ????while(!disp.is_closed?&&?!disp.is_keyQ?&&?!disp.is_keyESC)
  • ????{
  • ????????i?=?i?%?visu.size;
  • ????????char?buf[20];
  • ????????::sprintf(buf,"img:%d",i);
  • ????????//顯示效果,(CImg?<<?CImg)會生成一個新的CImgList
  • ????????//左邊是原圖,右邊是處理圖,外加寫了個序號在上面以便區別
  • ????????disp.display(?src?<<?(+visu[i]).draw_text(0,0,buf,textcolor)?).wait();
  • ????????//按方向鍵下則顯示下一個
  • ????????if(disp.is_keyARROWDOWN)?i++;
  • ????????//方向鍵上則顯示上一個
  • ????????if(disp.is_keyARROWUP)
  • ????????{
  • ????????????i--;
  • ????????????if(i<0)?i=visu.size-1;
  • ????????}
  • ????}
  • ????return?0;
  • }
  • 這個例子用到了CImgCImgListCImgDisplay三個類。

    CImg類前面已有介紹。

    CImgList是CImg的容器,用來保存一組CImg,主要方法有:

  • CImgList<T>&?remove(const?unsigned?int?pos)?//刪除指定位置
  • CImgList<T>&?pop_back()????????????//刪除最后一個
  • CImgList<T>&?pop_front()????????//刪除前端
  • CImgList<T>&?push_back(const?CImg<t>&?img)//從后面添加
  • CImgList<T>&?push_front(const?CImg<t>&?img)//從前面添加
  • CImgList<T>&?insert(const?CImg<t>&?img,?const?unsigned?int?pos)????//插入到指定位置之前
  • CImgList<T>&?clear()????//清空
  • CImg<T>&?operator[](const?unsigned?int?pos)?//取指定位置的圖像
  • 上面這些是它作為容器的基本功能,同時它也重載了一些操作符以便于使用,比如本例中的"<<"操作其實就是push_back方法。另外,它還有大量的運算功能用于給容器中的圖像批量運算。最后,還有一些好玩的方法不可錯過:從視頻中載入或把圖像保存到視頻中:

  • CImgList<T>&?load_ffmpeg(const?char?*const?filename,
  • ????const?unsigned?int?first_frame=0,
  • ????const?unsigned?int?last_frame=~0U,
  • ????const?unsigned?int?step_frame=1,
  • ????const?bool?pixel_format=true,
  • ????const?bool?resume=false)
  • ?
  • const?CImgList<T>&?save_ffmpeg(
  • ????const?char?*const?filename,
  • ????const?unsigned?int?first_frame=0,
  • ????const?unsigned?int?last_frame=~0U,
  • ????const?unsigned?int?fps=25)
  • 這兩個方法要求鏈接ffmpeg庫,如果沒有這個庫文件,還可以使用load_ffmpeg_external和save_ffmpeg_external方法調用已外部安裝的ffmpeg程序編解碼。

    CImgDisplay類是一個窗口類,它主要用來顯示CImg和CImgList。一般使用它的流程是:

  • 新建CImgDisplay對象
  • 設置它的大小,除直接輸入寬高外也能用直接用CImg、CImgList或另一個CImgDisplay對象作為調整大小的依據。這時,CImgDisplay對象內部已經建立了一個窗口了。
  • 使用display方法顯示圖像
  • 使用wait方法等待事件發生(鍵盤、鼠標、超時等)
  • 檢查is_keyXXXX、is_closed、button、wheel等成員變量確定是什么事件,再決定我們該做什么操作。
  • 如果需要,循環回第三步
  • 析構時窗口收回。
  • 在本例中,如果窗體關閉或按了Q鍵或按了ESC鍵則退出循環,程序結束。或者顯示由原圖和處理后的圖組成的CImgList圖像,如果按了上下方向鍵,則改變當前顯示的處理圖。

    這是本例運行時的截圖:

    水墨畫風格的《清明上河圖》

    CImg的圖像處理方法絕不止上面例子中寫的那么一點點,

    ?

    CImg庫不僅可以處理二維圖像,也能處理三維圖像,這篇文章介紹了CImg處理三維圖像的方法。

    之前我們一直玩的是CImg的二維圖像處理,從CImg<>類的成員方法上看,顯然它還有更多能力。比如那些帶3d后綴的方法顯然是為三維圖像準備的,還有dijkstra方法,貌似是圖論方面的內容,CImg庫管得可真夠寬的-_- 圖論方面的先不管它,這方面還是Boost::Graph比較在行,我比較感興趣的還是它的三維能力,畢竟這是個Head Only的跨平臺庫,并且沒有調用OpenGL,有三維處理能力還是蠻讓人興奮D~~,呵呵:)

    現在,我們從一根三維的直線開始:

    下面的代碼使用VC2005 Express編譯,為了直觀,使用了中文變量名.

  • #include?"CImg.h"
  • using?namespace?cimg_library;
  • ?
  • //三維直線
  • int?main()
  • {
  • ????CImg<>?頂點(2,3,1,1,
  • ????????0,50
  • ????????0,50
  • ????????0,50);
  • ????CImgList<unsigned?int>?圖元(?CImg<unsigned?int>::vector(0,1)?);
  • ????CImg<>?不透明度?=?CImg<>::vector(1.0f);
  • ????CImgList<unsigned?char>?顏色表(?CImg<unsigned?char>::vector(255,0,255)?);
  • ?
  • ????//300*300,深度是1,3個色彩通道,以0填充
  • ????CImg<>?visu(300,300,1,3,0);
  • ????visu.display_object3d("三維直線",頂點,圖元,顏色表,不透明度);
  • ???
  • ????return?0;
  • }
  • 編譯運行,顯示一條直線,在窗體內按住鼠標拖曳,可以改變視角.不過就一根直線看上去不是很爽,沒立體感,下面我們用直接組成一個立方體:

    一個立方體有8個頂點, 12條邊

  • //多根三維直線
  • int?main()
  • {
  • ????//?8個頂點
  • ????CImg<>?頂點(8,3,1,1,
  • ????????0,??0,??50,?50,?50,?0,??0,??50,
  • ????????0,??50,?50,?0,??0,??0,??50,?50,
  • ????????0,??0,??0,??0,??50,?50,?50,?50);
  • ????//?12條邊
  • ????CImgList<unsigned?int>?圖元?=
  • ????????CImg<unsigned?int>::vector(0,1)?<<
  • ????????CImg<unsigned?int>::vector(1,2)?<<
  • ????????CImg<unsigned?int>::vector(2,3)?<<
  • ????????CImg<unsigned?int>::vector(3,4)?<<
  • ????????CImg<unsigned?int>::vector(4,5)?<<
  • ????????CImg<unsigned?int>::vector(5,6)?<<
  • ????????CImg<unsigned?int>::vector(6,7)?<<
  • ????????CImg<unsigned?int>::vector(0,5)?<<
  • ????????CImg<unsigned?int>::vector(1,6)?<<
  • ????????CImg<unsigned?int>::vector(2,7)?<<
  • ????????CImg<unsigned?int>::vector(0,3)?<<
  • ????????CImg<unsigned?int>::vector(4,7)
  • ????????;
  • ?
  • ????CImg<>?不透明度(1,12,1,1,?1.0f);
  • ????CImgList<unsigned?char>?顏色表(?12,?CImg<unsigned?char>::vector(255,0,255)?);
  • ?
  • ????//300*300,深度是1,3個色彩通道,以0填充
  • ????CImg<>?visu(300,300,1,3,0);
  • ????visu.display_object3d("三維直線",頂點,圖元,顏色表,不透明度);
  • ???
  • ????return?0;
  • }
  • 顯示圖如下:


    在CImg里,一幅三維圖被分解成:頂點(vertices)和圖元(primitives)兩個部分。

    頂點是一個CImg<>對象,它存放三維圖中所有的頂點數據。這個CImg<>對象此時只是一個數據容器,我們姑且把它看作圖像的話,那么它相當于一個“寬(width)=頂點數,高(height)=3,深(depth)=1,色彩通道(dim)=1”的圖像,在“這個圖像指定x位置上的3個y軸數據(因為高度總是為3)”指明了頂點所在的x,y,z方位。

    比如上例中的頂點規格為8*3*1*1,表明頂點數為8,后面的數據從縱向正好是8組三維方位數據。這里這樣寫只是為了方便,如果要運行期動態加入頂點,可以使用append方法,上面的頂點初始化代碼可以改寫成:

  • CImg<>?頂點;
  • 頂點.append(CImg<>::vector(0,0,0),'x')
  • ????.append(CImg<>::vector(0,50,0),'x')
  • ????.append(CImg<>::vector(50,50,0),'x')
  • ????.append(CImg<>::vector(50,0,0),'x')
  • ????.append(CImg<>::vector(50,0,50),'x')
  • ????.append(CImg<>::vector(0,0,50),'x')
  • ????.append(CImg<>::vector(0,50,50),'x')
  • ????.append(CImg<>::vector(50,50,50),'x');
  • 這里的靜態方法vector返回一個由它的所有參數組成的CImg<>對象,最多可接受16個輸入參數。vector生成的CImg<>對象中數據是按列排的,也就是說生成的CImg<>對象寬度總是1,高度正好是參數個數,(0,y)點上的數據對應第y個參數。

    append方法把當前圖像和輸入的圖像按指定軸的方向合成一個新的圖像,這是就是以'x'軸方向把這些1X3的“圖像”合并到一起。順便說一下,CImg的大部分方法都是返回自身的引用,所以可以連續用.操作。

    圖元是組成三維圖的最小圖形,一般的三維處理都以三角形作為圖元,所以顯卡測試里有三角形生成速度一項,扯遠了~~:-P

    在CImg中圖元是一個CImgList<unsigned int>對象,這個對象中所包含的每個CImg<unsigned int>是一組頂點索引,同樣是1Xn的。n個頂點組合成一個面,這個面就是一個圖元,所有圖元組成一個三維物體。

    另外,顯示時還需要給出每個圖元的不透明度和顏色表(或紋理),不透明度是CImg<float>對象,存放了與圖元數目同樣個數的浮點數據(同樣是縱向存放的),1.0表示不透明,0.0表示全透明,0~1之間的數據指定透明度。

    顏色表是一個CImgList<>數據,其中至少要有圖元數目個CImg<>對象,每個CImg<>以RGB的順序縱向存放了對應圖元的顏色數據(或者紋理,這個后面再說)。

    在本例中我們的所有圖元都是直線,我們也可以用四個點把圖元描述成一個面,這樣,一個三維立方體誕生了:

  • #include?"CImg.h"
  • using?namespace?cimg_library;
  • ?
  • //三維立方體
  • int?main()
  • {
  • ????//8個頂點
  • ????CImg<>?頂點;
  • ????頂點.append(CImg<>::vector(0,0,0),'x')
  • ????????.append(CImg<>::vector(0,50,0),'x')
  • ????????.append(CImg<>::vector(50,50,0),'x')
  • ????????.append(CImg<>::vector(50,0,0),'x')
  • ????????.append(CImg<>::vector(50,0,50),'x')
  • ????????.append(CImg<>::vector(0,0,50),'x')
  • ????????.append(CImg<>::vector(0,50,50),'x')
  • ????????.append(CImg<>::vector(50,50,50),'x');
  • ?
  • ?
  • ????CImgList<unsigned?int>?圖元?=
  • ????????CImg<unsigned?int>::vector(0,1,2,3)?<<
  • ????????CImg<unsigned?int>::vector(4,5,6,7)?<<
  • ????????CImg<unsigned?int>::vector(0,1,6,5)?<<
  • ????????CImg<unsigned?int>::vector(2,7,4,3)
  • ????????;
  • ?
  • ????CImg<>?不透明度(1,12,1,1,?1.0f);
  • ????CImgList<unsigned?char>?顏色表(?12,?CImg<unsigned?char>::vector(255,0,255)?);
  • ????顏色表[0]?=?CImg<unsigned?char>::vector(255,0,0);
  • ????顏色表[1]?=?CImg<unsigned?char>::vector(0,255,0);
  • ????顏色表[2]?=?CImg<unsigned?char>::vector(0,0,255);
  • ????//300*300,深度是1,3個色彩通道,以0填充
  • ????CImg<>?visu(300,300,1,3,0);
  • ????visu.display_object3d("三維立方體",頂點,圖元,顏色表,不透明度,true,4,4,true);
  • ???
  • ????return?0;
  • }
  • 對了,前面都忘說display_object3d方法了:

    該方法聲明如下:

  • const?CImg<T>&?cimg_library::CImg<?T?>::display_object3d??(?CImgDisplay?&disp?/*或?const?char?*const?title*/,?
  • ??const?CImg<?tp?>?&??points,?
  • ??const?CImgList<?tf?>?&??primitives,?
  • ??const?CImgList<?tc?>?&??colors,?
  • ??const?to?&??opacities,?
  • ??const?bool??centering?=?true,?
  • ??const?int??render_static?=?4,?
  • ??const?int??render_motion?=?1,?
  • ??const?bool??double_sided?=?false,?
  • ??const?float??focale?=?500,?
  • ??const?float??specular_light?=?0.2f,?
  • ??const?float??specular_shine?=?0.1f,?
  • ??const?bool??display_axes?=?true,?
  • ??float?*const???pose_matrix?=?0??
  • ?)?
  • 參數很多,前面的五個不用多說,說說后面幾個我知道的:-P
    centering 指定是否把0,0,0點作為窗體中心 render_static和render_motion 指定靜態渲染級別和動態渲染級別: 0=點, 1=線, 2=面(沒有亮光), 3=面(平面), 4=面(邊緣柔和) double_sided 指定是否雙面渲染 focale 焦距

    咳,由于空間想象力太差,組成立方體的六個面偶只放了四個,結果生成的圖形如下:

    轉載于:https://www.cnblogs.com/milier-otw/archive/2013/03/13/2958101.html

    總結

    以上是生活随笔為你收集整理的C++中图像处理的类之二 CImg的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    伊人精品在线 | 亚洲波多野结衣 | 涩涩网站在线播放 | 久久免费视频这里只有精品 | 日韩首页 | 久久精品aaa | 91看毛片| 久久中文字幕导航 | 亚洲精品女人久久久 | 亚洲精品一区二区在线观看 | 日韩大片免费观看 | 欧美黑吊大战白妞欧美 | 国产一级在线观看视频 | 久久精品欧美一区 | 中文字幕久久网 | 国产精品男女 | 欧美国产精品久久久久久免费 | 日韩精品视频在线观看网址 | 国产精品一区在线观看 | 国产精品久久久久久超碰 | 99热日本| 久久国产女人 | 国产精品video爽爽爽爽 | 婷婷精品 | 久草在线免费看视频 | 亚洲欧洲一级 | 亚洲成av人片一区二区梦乃 | 亚洲国产wwwccc36天堂 | 久久精品爱视频 | 91成人精品在线 | 2018好看的中文在线观看 | 日韩在线观看视频网站 | 中文字幕在线观看网 | 久草.com| 999久久国产精品免费观看网站 | 国产高清不卡一区二区三区 | 日韩一区二区在线免费观看 | 97成人精品视频在线观看 | 深夜激情影院 | 免费人成网 | 日韩欧美在线综合网 | 国产在线观看你懂得 | 看毛片的网址 | 西西www444 | 午夜精品久久久久久久99 | 久草在线观看资源 | 免费看黄网站在线 | 成全在线视频免费观看 | 黄色天堂在线观看 | 国产a国产 | 精品伊人久久久 | 91精品视频在线免费观看 | 丝袜美腿一区 | 久久精精品| 免费日韩 精品中文字幕视频在线 | 久草在| 午夜影视剧场 | 三上悠亚一区二区在线观看 | 午夜精品99久久免费 | 俺要去色综合狠狠 | av夜夜操| 尤物九九久久国产精品的分类 | 97成人精品区在线播放 | 99精品一区二区三区 | 久久精国产 | 97操碰 | 三级黄色大片在线观看 | 国产又黄又猛又粗 | 久久国产视频网站 | 国产精品午夜8888 | 97视频在线免费播放 | 美女黄网久久 | 免费高清在线视频一区· | 国产黄色在线观看 | 99热这里只有精品在线观看 | 国产在线最新 | 久久艹在线观看 | 久草在线观看 | 日日夜夜中文字幕 | 中文国产成人精品久久一 | 一本一本久久a久久 | 96国产在线 | 五月开心六月伊人色婷婷 | 干 操 插 | 国产精久久久久久久 | 伊人va| 日本三级国产 | 欧美日韩aa | 日韩黄色免费 | 中文资源在线官网 | 一区二区精品在线 | 婷婷网站天天婷婷网站 | 在线观看视频h | 国产精品视频久久 | 狠狠躁天天躁 | 天天操天天操天天爽 | 91成人免费看片 | 久久久午夜精品福利内容 | 天天干天天操天天干 | 国产欧美综合视频 | 黄色在线观看免费 | 日韩高清精品免费观看 | 国产精品第一页在线 | www.天天成人国产电影 | 成人免费在线看片 | 亚洲男人天堂2018 | 波多野结衣视频一区 | 一区二区不卡高清 | 日韩电影中文 | 在线视频黄 | 亚洲毛片久久 | 视频91在线 | 欧美日韩高清在线 | 国产人免费人成免费视频 | 亚洲情婷婷 | 亚洲,播放 | 在线黄网站 | 成人av中文字幕在线观看 | 国产综合福利在线 | 婷婷综合影院 | 亚洲欧洲视频 | 在线免费黄色片 | 天天操天天舔天天爽 | 国产一区二区高清不卡 | 久久免费中文视频 | 欧美日韩国语 | 国产精品久久久久久久免费大片 | 97精品视频在线 | 亚洲成av人片一区二区梦乃 | 日韩1页 | 2020天天干天天操 | www.亚洲激情.com | 91大神一区二区三区 | 日日爱视频 | 亚洲五月花 | 中文字幕黄色网址 | a级国产乱理论片在线观看 特级毛片在线观看 | 五月婷婷丁香在线观看 | 亚洲激情在线 | av看片在线| 国产成人精品亚洲日本在线观看 | www免费| 国产成人精品一二三区 | 日韩在线网址 | 久久久久日本精品一区二区三区 | 日韩av电影网站在线观看 | 久久久久久久影视 | 国产精品18久久久久vr手机版特色 | 免费观看黄色12片一级视频 | 黄色片免费看 | 丁香六月综合网 | 91大神dom调教在线观看 | 在线免费国产视频 | 在线免费中文字幕 | 久久精品国产成人 | 日韩三区在线观看 | 视频1区2区 | 伊人成人久久 | 中文视频在线看 | 婷婷伊人综合 | 夜夜骑首页 | 亚洲人成影院在线 | 日韩黄色在线观看 | 91黄色视屏 | 九九热精品视频在线播放 | 久久天天操 | 久久综合色天天久久综合图片 | 天天干天天操天天操 | 久久久久www | 成人毛片在线视频 | 欧美少妇xxxxxx | 97在线观看免费观看高清 | 视频在线国产 | 色网站免费在线观看 | 国产色拍拍拍拍在线精品 | 久久精品99国产国产 | 五月激情丁香婷婷 | 国产一级片不卡 | 欧美成a人片在线观看久 | 精品福利在线观看 | 天天色官网 | 九九日九九操 | 亚洲国产一区在线观看 | 天天爱天天草 | 久久亚洲精品国产亚洲老地址 | 天天操天天操天天操天天 | 一区二区精品 | 黄色免费观看视频 | 18性欧美xxxⅹ性满足 | 视频直播国产精品 | 久久综合九色 | 亚洲jizzjizz日本少妇 | 88av视频 | 亚洲精品国产欧美在线观看 | 麻豆系列在线观看 | 黄网站免费看 | 色婷婷激婷婷情综天天 | 看毛片网站| 久久综合狠狠综合久久激情 | 激情五月婷婷综合网 | 亚洲视频免费在线观看 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 97超碰人人澡 | 粉嫩一二三区 | 日本中出在线观看 | 97色在线观看免费视频 | 成人影片免费 | 黄色av电影网 | www.色婷婷.com | 天天躁日日 | 日韩精品一区二区三区三炮视频 | 亚洲日本韩国一区二区 | www免费在线观看 | 久久免费视频这里只有精品 | 国产精品久久久久久久av大片 | 亚洲视频免费在线观看 | 91日韩精品 | 国产成人精品av在线观 | 成人免费视频免费观看 | 青春草国产视频 | a在线播放 | 啪啪激情网 | 手机看片国产日韩 | 激情小说网站亚洲综合网 | 国产精品久久久视频 | 午夜av影院 | 日本精品视频在线播放 | 国产中文在线播放 | 精品国产乱码久久久久久1区二区 | 欧洲成人av | 欧美片一区二区三区 | 久久久久久美女 | 在线观看国产一区 | 97视频免费在线观看 | 婷婷久久综合网 | 成人小视频在线观看免费 | 4438全国亚洲精品在线观看视频 | 亚洲精品免费看 | 久久男人影院 | 精品国产一区二区三区四区vr | av电影在线免费观看 | 国产在线一区二区三区播放 | 91精品国产网站 | 久久精品美女视频网站 | www.五月天色 | 91自拍视频在线 | 色网av| 国产91影视 | 日韩精品在线看 | 狠狠婷婷 | 97成人在线 | 99视频久久 | 综合婷婷| 国产亚洲精品成人av久久ww | 色av网站| 国产在线观看h | 91最新网址 | 韩国av一区二区三区在线观看 | 狠狠干夜夜爽 | 国产精品日韩在线观看 | 免费视频一二三区 | 色吊丝在线永久观看最新版本 | 麻豆视频成人 | 最近中文字幕国语免费高清6 | 69av视频在线观看 | 视频一区久久 | 国产成人久久77777精品 | 精品国模一区二区三区 | 国产精品一区二区在线免费观看 | 五月婷婷婷婷婷 | 91最新网址在线观看 | 久久 在线| 亚洲一级片 | 最近中文字幕 | 久久精品中文字幕一区二区三区 | 97在线视 | 精品国产乱码久久 | 国产精品成人aaaaa网站 | 国产精品久久久99 | 激情欧美丁香 | 免费视频资源 | 欧美日韩在线视频一区 | 日韩精品2区| 国产在线观看你懂得 | 亚洲视频在线看 | 免费福利视频网站 | 国产福利在线免费 | 国产精品精品视频 | 久久久www免费电影网 | 中文字幕在线观看三区 | 成人在线观看免费视频 | 日韩免费小视频 | 日本久久久久久久久久 | 尤物97国产精品久久精品国产 | 黄色在线成人 | 成人午夜电影网 | 一区二区三区四区五区在线视频 | 黄色免费观看视频 | 免费99精品国产自在在线 | 日韩在线观看一区 | 亚洲精品videossex少妇 | 黄色小说视频网站 | 狠狠干狠狠艹 | 国产精品18久久久久久久久久久久 | 在线免费高清一区二区三区 | 综合色站导航 | 日韩69视频 | 91精品一区在线观看 | 天天操天天操天天操天天操天天操天天操 | 在线观看黄色av | 国产一区二区电影在线观看 | 天天天操天天天干 | 在线视频日韩一区 | 天天躁天天躁天天躁婷 | 国产黄色视 | 久久免费视频一区 | 欧美一级看片 | 天堂v中文 | 久久综合久色欧美综合狠狠 | 四虎在线观看精品视频 | 久久久国产精品视频 | 天天操天天操天天操天天操 | 天天操天天摸天天爽 | 精久久久久 | 日本精品小视频 | 91女神的呻吟细腰翘臀美女 | 国产高清无av久久 | 久久精品国产亚洲a | 激情视频二区 | 在线免费黄网站 | 成人免费观看网址 | 日韩精品中字 | 五月婷婷激情五月 | 精品国产乱码 | 香蕉免费在线 | 九九免费观看视频 | 国产精品18p | 在线观看av网站 | 久久国产精品免费一区二区三区 | av色网站 | 亚洲成人影音 | 国产一级二级视频 | 亚洲资源在线网 | 天天伊人网 | 亚洲日本欧美在线 | 91看片淫黄大片一级在线观看 | 五月激情久久久 | 又黄又爽又湿又无遮挡的在线视频 | 免费av黄色 | 91麻豆精品国产午夜天堂 | 91视视频在线直接观看在线看网页在线看 | 久久久久久久久久久网站 | 免费看黄在线 | 精品一区电影 | 日韩在线观看a | 天天爽人人爽夜夜爽 | 国产91综合一区在线观看 | 成人资源在线观看 | 97超碰伊人| 精品久久久久亚洲 | 伊人色播 | 六月婷婷网| 国产一区在线观看视频 | 久久色中文字幕 | 亚洲免费高清视频 | 视频在线91| 色综合久久精品 | 国产精品免费久久 | 97在线视频免费 | 国产一区二区在线播放 | 欧美在线观看视频一区二区 | 国产亚洲欧美日韩高清 | 狠狠操狠狠干天天操 | 亚洲区色| 人人草在线视频 | 婷婷激情五月 | 国产黄色电影 | 91麻豆看国产在线紧急地址 | 国产+日韩欧美 | 日韩在线视频国产 | 色午夜| 亚洲视频1 | 在线观看资源 | 免费观看一区二区 | 亚洲欧美国产精品 | 91中文在线 | 欧美日韩高清在线一区 | 久久久免费国产 | 天天人人综合 | 超碰人人超 | 亚洲国产免费av | 日韩69av| 一区二区三区在线观看免费 | 91视频在线观看免费 | 激情丁香月 | 国产伦精品一区二区三区四区视频 | 九七视频在线 | 天天av资源 | 超碰97人人干 | av直接看| av激情五月 | 网站免费黄 | 伊人伊成久久人综合网站 | 久久在线免费观看视频 | 午夜精品一区二区三区免费视频 | 免费在线观看黄色网 | 精品国模一区二区三区 | 视频国产在线 | 久久草网 | 天天综合久久 | 日韩精品免费一区二区 | 91视频在线播放视频 | 精品视频免费观看 | 日本久久不卡视频 | 国产专区在线播放 | 国产偷在线 | 亚洲欧洲日韩 | 9999精品 | 国产精品久久久区三区天天噜 | 国产在线探花 | 天天综合网~永久入口 | 欧美日韩久久 | 欧美日韩观看 | 日韩视频专区 | 97在线免费观看 | 人人澡超碰碰 | 国产精品一区二区电影 | 欧美男同视频网站 | 亚州性色 | 亚洲欧美在线观看视频 | 国产精品12 | 亚洲欧美精品一区二区 | av在线免费播放 | 亚洲五月激情 | 一区二区三区四区五区六区 | www免费看 | 在线亚洲欧美日韩 | 日韩欧美在线一区二区 | av电影中文字幕 | 国产精品免费不卡 | 国产不卡网站 | 少妇bbbb| 四虎最新入口 | 成人免费在线网 | 午夜精品久久久久久 | 久久九九免费视频 | 成人免费xxxxxx视频 | 中文字幕在线观看三区 | 日本三级香港三级人妇99 | 久久国产精品免费一区二区三区 | 精品九九九 | 在线观看免费福利 | 国产老妇av | 亚洲精品午夜aaa久久久 | 日韩精品一区二区三区中文字幕 | 高清中文字幕 | 国产手机在线观看 | 成人在线视频在线观看 | 91天堂在线观看 | 在线中文字幕播放 | 一级黄色大片在线观看 | 九九精品视频在线观看 | 国产做爰视频 | 美国av片在线观看 | 精品一区二区在线观看 | 中文字幕日韩高清 | 国产尤物视频在线 | 人人澡超碰碰 | av爱干| 99精品欧美一区二区三区 | 国产精品免费麻豆入口 | 中文字幕久久久精品 | 亚洲伊人网在线观看 | 日韩三级av | 999久久国产精品免费观看网站 | 国产日本亚洲高清 | 国产自制av | 丁香在线| 久艹视频免费观看 | www.亚洲精品在线 | 射久久 | 亚洲精品午夜aaa久久久 | 欧美日本国产在线观看 | 亚洲精品综合在线 | 免费看国产一级片 | 国产在线一线 | 99自拍视频在线观看 | 青青河边草免费 | 国产精品美女久久久久久网站 | 少妇bbb搡bbbb搡bbbb′ | 一区二区三区在线观看免费视频 | 久久精品艹 | 午夜久久久久久久 | 在线播放精品一区二区三区 | 91大神一区二区三区 | 激情综合婷婷 | 国产一级片观看 | 国产在线高清 | 国产伦理一区二区三区 | 中文字幕一区二区三区四区视频 | 99精品国产亚洲 | 四虎免费在线观看视频 | 2019中文字幕网站 | 天天草天天爽 | 中文字幕在线影院 | 成人三级黄色 | 国产精品影音先锋 | 色吧久久| 日批视频在线观看免费 | 天天爱天天 | 日韩激情三级 | 日韩在线高清免费视频 | 综合色综合色 | 成人国产精品久久久 | 精品a在线 | 国产999视频在线观看 | 国产亚洲免费观看 | 日本不卡123 | 亚洲精品国产精品国自产观看 | 久久99网 | 免费在线观看av网址 | 日韩.com | 在线观看www视频 | 欧美与欧洲交xxxx免费观看 | 日韩在线免费不卡 | 成人久久精品视频 | 97精品欧美91久久久久久 | 不卡视频在线看 | 麻豆视频一区 | 欧美精品久| 91视频免费观看 | 亚洲高清视频一区二区三区 | 91在线免费观看网站 | 亚洲一区二区三区在线看 | 成人毛片网 | 亚洲黄色一级视频 | 精品久久久久国产免费第一页 | 欧美一区影院 | 婷婷综合在线 | 婷婷午夜天 | 最近中文字幕免费av | 欧美精品在线观看免费 | 久久久久欠精品国产毛片国产毛生 | 成人精品视频久久久久 | 91香蕉视频色版 | 91精品啪在线观看国产线免费 | 狠色在线| 国产成人三级在线观看 | 日韩免费在线观看视频 | av成人免费 | 欧美精品九九99久久 | www.色国产 | 国产精品va| 麻豆久久精品 | 91精选在线 | 日本在线免费看 | 国产91免费观看 | 久久人人爽爽人人爽人人片av | 亚洲一区美女视频在线观看免费 | 亚洲欧美日韩国产一区二区 | 国产福利精品视频 | 国产高清福利在线 | 不卡的av在线播放 | 久久人网 | 黄色精品在线看 | 日韩精品一区二区在线观看 | 黄污视频大全 | 九九视频免费观看视频精品 | 一区二区视| 在线看片中文字幕 | 久久久网站 | 国内精品久久久久影院一蜜桃 | 欧美色婷婷 | 在线免费看片 | 精品三级av| 天天操操操操操操 | 欧美日韩国产综合一区二区 | 奇米四色影狠狠爱7777 | 五月天久久综合网 | 亚洲精品乱码久久久久v最新版 | 国产高清视频免费在线观看 | 香蕉视频在线视频 | 天天视频色 | 日韩成人免费在线 | 免费在线观看日韩 | 国产成人精品999在线观看 | 中国美女一级看片 | 91 在线视频播放 | 日韩欧美视频免费观看 | 成人蜜桃 | 黄网站色 | 91亚洲精品在线观看 | 91麻豆网 | 99精品视频免费观看视频 | 免费视频91 | 国产黄色精品在线 | 最新精品视频在线 | 黄色大片入口 | av线上看 | 在线观看小视频 | 色片网站在线观看 | 天天色成人网 | 天天综合天天做 | 在线观看黄色的网站 | 91亚洲精品久久久蜜桃借种 | 国产精品正在播放 | 成人在线视频免费观看 | 在线播放国产精品 | 中文字幕在线观看播放 | 超碰在线人人 | 久久婷婷视频 | 三级黄色在线观看 | 99久久影院| 国产精品久久伊人 | 久草网站在线观看 | 97超碰在线人人 | 四虎4hu永久免费 | 亚洲欧美国产视频 | 在线av资源 | 欧美在线不卡一区 | 中文av网| 久草在线资源网 | www.天天操| 狠狠色丁婷婷日日 | 一区二区三区手机在线观看 | 亚洲国产剧情 | 亚洲视频网站在线观看 | 黄网站免费久久 | 婷婷 综合 色 | 99亚洲精品在线 | 深爱五月激情网 | 免费看国产一级片 | 日本精品午夜 | 久久99久久久久 | 91综合视频在线观看 | 黄色午夜 | 天天色 天天 | 亚洲欧美综合 | 亚洲精品动漫成人3d无尽在线 | 最近中文字幕高清字幕在线视频 | 久久福利精品 | 伊人小视频 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 日韩中文字幕网站 | 97超级碰碰碰碰久久久久 | 在线99视频| 国产精品a成v人在线播放 | 日韩av在线资源 | 91亚洲国产 | 色婷婷久久久 | 久草在线视频在线 | 一本一道久久a久久精品蜜桃 | 激情综合网婷婷 | 日韩美在线观看 | 国产精品18久久久久久vr | 亚洲国产视频在线 | 中文字幕乱码一区二区 | 日韩黄色免费电影 | av片一区二区 | 久久国产精品99精国产 | 久久久一本精品99久久精品 | 黄色网址中文字幕 | 一区二区影视 | 91av手机在线 | 99久精品视频 | 天天做天天射 | 黄污在线看 | 最新午夜电影 | 色视频成人在线观看免 | 九九九九九九精品任你躁 | 久久99久久99精品 | 偷拍区另类综合在线 | 色婷婷成人网 | 狠狠色丁香久久婷婷综合_中 | 99国内精品久久久久久久 | 国内精品久久久久久中文字幕 | 色婷婷综合久久久久中文字幕1 | 精品亚洲免费 | 天堂中文在线视频 | 91av网站在线观看 | 91成人免费电影 | 日韩中文字幕a | www.亚洲精品视频 | 综合色伊人 | 免费a级观看 | 操操日 | 久久精品一区二区三区四区 | 91视频91自拍 | 精品在线视频一区二区三区 | 91精品国产福利在线观看 | 在线黄色观看 | 在线免费观看黄色av | 国产精品久久久久久久久软件 | 国产 视频 久久 | 亚洲 在线 | 波多野结衣资源 | 日韩激情在线 | 网站在线观看日韩 | 99c视频高清免费观看 | 狠狠干中文字幕 | 国产精品久久一区二区三区不卡 | 国产精品第一视频 | 国产成人精品一区二区三区网站观看 | 人人爱天天操 | 亚洲jizzjizz日本少妇 | 国产在线 一区二区三区 | 国产精品久久久久高潮 | 亚洲精品裸体 | 91爱爱电影 | 国产网红在线观看 | 国产在线观 | 日韩亚洲欧美中文字幕 | 蜜臀av性久久久久av蜜臀妖精 | 亚州五月| 日韩高清在线不卡 | 在线观看视频你懂 | 国产日韩欧美视频 | 色综合色综合久久综合频道88 | 夜夜躁日日躁狠狠久久av | 久久精品免费电影 | 在线中文字幕一区二区 | 99中文视频在线 | 久久久久国产精品一区二区 | 国产一区二区三区在线免费观看 | 中文字幕 成人 | 国产黄色精品在线 | 久久视频在线观看中文字幕 | 国产精成人品免费观看 | 日日爽| 久久久精华网 | 国产成人精品三级 | 久久成人在线视频 | 亚洲91中文字幕无线码三区 | 久草视频在线免费播放 | 奇米影视8888在线观看大全免费 | 夜夜夜草 | 91精品国产自产老师啪 | 91精品在线视频 | 亚洲精品在线一区二区 | 中文字幕频道 | 久久超级碰视频 | 手机av永久免费 | 中文字幕视频一区 | 久久尤物电影视频在线观看 | 日韩激情影院 | 一本一本久久aa综合精品 | 久久国产精品免费视频 | 日韩激情av在线 | 91中文字幕永久在线 | 欧美日本高清视频 | 在线激情av电影 | 欧美电影在线观看 | 天天爱天天舔 | 国产一线二线三线在线观看 | 国产对白av| 久久久精品 一区二区三区 国产99视频在线观看 | 欧美极品一区二区三区 | 国产精品k频道 | 亚州日韩中文字幕 | 天天干,天天插 | 日韩av在线高清 | 精品在线视频一区 | 久久精品综合网 | 国产一区在线观看免费 | 免费人成在线观看网站 | 亚洲精品久| 日韩精品中文字幕在线观看 | 人人干网站| 欧美巨乳波霸 | 国产一区二区精品91 | 日本性生活一级片 | 中文字幕免费观看 | 综合久久影院 | 国产成人一区二区三区免费看 | 久久成人一区二区 | 就色干综合| 在线网站黄 | 黄色电影在线免费观看 | 成人毛片一区二区三区 | 亚洲国产精品小视频 | 在线观看精品一区 | 美女黄濒| 免费三级黄色 | 欧美a级免费视频 | 欧美激精品 | 久久久久高清 | 久久精品人 | 伊甸园永久入口www 99热 精品在线 | 九九综合久久 | 亚洲天堂va| 日韩av播放在线 | 精品久久久久国产免费第一页 | 丁香综合网 | 97色婷婷成人综合在线观看 | 国产69熟 | 天天av在线播放 | 中文字幕精品久久 | 亚洲激情视频 | 五月天伊人网 | 国产精品久久久久aaaa | 一区二区视频在线播放 | 国产看片免费 | 久久永久免费视频 | av福利第一导航 | 国产97在线看| 五月综合激情 | 亚洲国产丝袜在线观看 | 在线观看你懂的网址 | 国产成人精品日本亚洲999 | 久草视频手机在线 | 婷婷日| 久久成人高清视频 | 日韩激情三级 | 国产黄色片在线 | 午夜视频在线观看一区 | 久久草草影视免费网 | 亚洲男女精品 | 91亚洲狠狠婷婷综合久久久 | 日韩一区二区三区免费视频 | 日日夜夜天天人人 | 久久精品免费电影 | 嫩模bbw搡bbbb搡bbbb | 欧美伦理一区 | av韩国在线| www日韩视频 | 婷婷丁香六月天 | 国产 日韩 在线 亚洲 字幕 中文 | 特级西西444www大胆高清无视频 | 欧美日韩精品电影 | 最近免费在线观看 | 日韩免费电影网站 | 色婷婷亚洲 | 亚洲撸撸 | 久久久国产精品成人免费 | 中文字幕日韩无 | 免费中文字幕视频 | 视频在线观看亚洲 | 国产精品乱码久久久久久1区2区 | 97免费中文视频在线观看 | 国产精彩在线视频 | 国产福利av在线 | 国产亚洲精品中文字幕 | 亚洲h色精品 | 亚洲欧美激情精品一区二区 | 国产成人福利 | 国产精品99久久久久久久久 | 国产色视频 | 欧美日韩二三区 | 综合网伊人 | 中文字幕字幕中文 | 国产亚洲精品久久久久久久久久 | 婷婷久久精品 | 日韩99热| 一级淫片在线观看 | 性色av免费观看 | 亚洲精品在线二区 | 欧美91片| 色丁香综合 | 欧美日本不卡高清 | 国产精品久久网 | 深爱五月激情五月 | 五月综合网站 | 97精品国产97久久久久久久久久久久 | 久久精品久久精品 | 国产免费观看久久 | 成年人电影免费看 | 黄色av免费 | 亚洲精品国产精品国自产在线 | 久久综合五月天婷婷伊人 | 中文av在线免费观看 | 在线看片中文字幕 | 天天av天天 | 日日摸日日爽 | 欧美日韩在线精品一区二区 | 国产一级免费在线 | 精品日韩在线一区 | 在线观看视频你懂得 | 狠狠操操操 | 中文字幕影视 | 成人网大片 | 99免费精品 | 91精品欧美 | 久草视频手机在线 | 亚洲黄色在线播放 | 天天射天天 | 在线观看视频一区二区三区 | 性色av一区二区三区在线观看 | 欧美日韩精品在线 | 亚洲每日更新 | 亚洲成av人片在线观看www | 欧美一级在线 | 免费av大片| 亚洲一区二区三区四区精品 | 国产精品九九热 | 精品欧美一区二区精品久久 | av综合 日韩| 亚洲精品色 | 色亚洲激情 | 免费成人结看片 | 亚洲女人av | 91夜夜夜 | 日本在线观看中文字幕无线观看 | 精品视频免费久久久看 | 在线观看免费黄色 | 黄色一级动作片 | 亚洲国产av精品毛片鲁大师 | 午夜精品一区二区三区在线观看 | 在线播放亚洲激情 | 亚洲春色综合另类校园电影 | 在线观看韩国av | 色综合天天做天天爱 | 婷婷色影院 | 91男人影院| 亚洲精品乱码久久久一二三 | 麻豆 91 在线 | 国产成人久久精品一区二区三区 | 深夜国产在线 | 91视频三区 | 日韩av手机在线观看 | 国产只有精品 | 91视频中文字幕 | 超碰公开97 | 毛片无卡免费无播放器 | 骄小bbw搡bbbb揉bbbb | 特级毛片在线 | 欧美日韩一区二区三区在线免费观看 | 毛片网在线观看 | 久久不色 | 国产精品福利无圣光在线一区 | 国产精品 日韩精品 | 日韩综合色| 91久久精品一区二区二区 | 人人射人人 | 久久久国产毛片 | 精品国产乱码久久久久久1区二区 | a级国产乱理论片在线观看 伊人宗合网 | 久久久久亚洲国产精品 | 成人毛片一区 | 看av在线| 久久毛片高清国产 | 婷婷 综合 色 | 天天操天天干天天玩 | 国产精品精品国产婷婷这里av | 五月宗合网 | 欧洲精品一区二区 | 久在线观看| www国产一区 | 日韩 在线观看 | 欧美精品在线观看 | 国产黄色在线网站 | 国产精品免费观看视频 | 97在线免费视频观看 | 日韩精品一区二区三区在线视频 | 99久久久久久久久久 | av电影不卡在线 | 亚洲精品国产麻豆 | 91九色国产蝌蚪 | 日韩欧美专区 | 亚洲综合一区二区精品导航 | 九九视频免费在线观看 | 国产精品久久久久永久免费看 | 国产一区二区手机在线观看 | 国产精品高潮久久av | 亚洲精品一区二区网址 | 一本之道乱码区 | 亚洲精品国产精品乱码在线观看 | 永久免费观看视频 | 色综合久久久网 | 亚洲视频观看 | 亚洲日本激情 | 免费一级片在线 | 国产视频在线播放 | 人人搞人人搞 | 久久香蕉国产精品麻豆粉嫩av | 人人dvd| 人人澡澡人人 | 亚洲黄色免费在线看 | 91视频 - 114av | 久久手机在线视频 | 夜夜爽夜夜操 | 男女激情网址 | 国产在线观看不卡 | 97福利社 | 黄色小说网站在线 | 日韩av免费一区二区 | 99精品视频一区 | 黄色的视频网站 | 97热久久免费频精品99 | 丁香婷婷在线观看 | 一区二区三区在线免费观看 | 久插视频 | 麻豆综合网 | 久久精品99国产精品 | 波多野结衣亚洲一区二区 | 亚洲黄色网络 | 免费视频三区 | 中文资源在线官网 | 天天要夜夜操 |