校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > MATLAB 全景圖切割及盒圖顯示的實現步驟

MATLAB 全景圖切割及盒圖顯示的實現步驟

熱門標簽:海南400電話如何申請 激戰2地圖標注 白銀外呼系統 唐山智能外呼系統一般多少錢 騰訊外呼線路 廣告地圖標注app 哈爾濱ai外呼系統定制 公司電話機器人 陜西金融外呼系統

part1 全景圖切割

原圖:

切割效果:


以下是切割部分步驟:
舉這張圖為例,圖片格式hdr,jpg啥的都行:

1.1 邊緣剔除

有些全景圖會自帶白灰色邊緣,若是直接進行切割便會出現如下效果:

這時候我們首先要對原圖進行白邊剔除,代碼如下:

oriPic=imread('test.hdr');
[rows,cols,~]=size(oriPic);

for i=cols:-1:1
    tempListR=oriPic(floor(rows/4):ceil(3*rows/4),i,1);
    tempListG=oriPic(floor(rows/4):ceil(3*rows/4),i,1);
    tempListB=oriPic(floor(rows/4):ceil(3*rows/4),i,1);
    if all(round(tempListR-mean(tempListR))==0)all(tempListR==tempListG)all(tempListR==tempListB)
        oriPic(:,i,:)=[];
    else
        break;
    end
end
oriPic=oriPic(:,end:-1:1,:);
for i=size(oriPic,2):-1:1
    tempListR=oriPic(floor(rows/4):ceil(3*rows/4),i,1);
    tempListG=oriPic(floor(rows/4):ceil(3*rows/4),i,1);
    tempListB=oriPic(floor(rows/4):ceil(3*rows/4),i,1);
    if all(round(tempListR-mean(tempListR))==0)all(tempListR==tempListG)all(tempListR==tempListB)
        oriPic(:,i,:)=[];
    else
        break;
    end
end
oriPic=oriPic(:,end:-1:1,:);
for i=rows:-1:1
    tempListR=oriPic(i,floor(cols/4):ceil(3*cols/4),1);
    tempListG=oriPic(i,floor(cols/4):ceil(3*cols/4),1);
    tempListB=oriPic(i,floor(cols/4):ceil(3*cols/4),1);
    if all(round(tempListR-mean(tempListR))==0)all(tempListR==tempListG)all(tempListR==tempListB)
        oriPic(i,:,:)=[];
    else
        break;
    end
end
oriPic=oriPic(end:-1:1,:,:);
for i=size(oriPic,1):-1:1
    tempListR=oriPic(i,floor(cols/4):ceil(3*cols/4),1);
    tempListG=oriPic(i,floor(cols/4):ceil(3*cols/4),1);
    tempListB=oriPic(i,floor(cols/4):ceil(3*cols/4),1);
    if all(round(tempListR-mean(tempListR))==0)all(tempListR==tempListG)all(tempListR==tempListB)
        oriPic(i,:,:)=[];
    else
        break;
    end
end
oriPic=oriPic(end:-1:1,:,:);

1.2 圖像裁剪

我們要讓完成的就是如下的變換和裁剪:


這部分其實已經有較為成熟的原理和代碼:
代碼參考:https://stackoverflow.com/questions/29678510/convert-21-equirectangular-panorama-to-cube-map

原理參考:
http://paulbourke.net/panorama/cubemaps/#1

http://paulbourke.net/panorama/cubemaps/

原理參考文章中更加清晰的變化圖:

另:
在參考代碼的基礎上,對映射像素進行了插值處理,可以使圖像更加平滑,原理如下:


主要函數代碼:

function resultPic=createCubeMapFace(oriPic,id,height,width)
    [M,N,~]=size(oriPic);
    resultPic=zeros([height,width,3]);
    an=sin(pi/4);
    ak=cos(pi/4);
    
    faceTransform=[0,0;
               pi/2,0;
               pi,0;
               -pi/2,0;
               0,-pi/2;
               0,pi];
    ftu=faceTransform(id,1);
    ftv=faceTransform(id,2);

    for y=0:height-1
        for x=0:width-1
            nx=y/height-0.5;
            ny=x/width-0.5;

            nx=nx*2*an;
            ny=ny*2*an;

            if (ftv == 0)
                u=atan2(nx, ak);
                v=atan2(ny*cos(u),ak);
                u=u+ftu;
            elseif(ftv>0)
                d=sqrt(nx*nx+ny*ny);
                v=pi/2-atan2(d,ak);
                u=atan2(ny,nx);
            else
                d=sqrt(nx*nx+ny*ny);
                v=-pi/2+atan2(d,ak);
                u=atan2(-ny,nx);
            end

            u=u/(pi);
            v=v/(pi/2);

            while(v-1)
                v=v+2;
                u=u+1;
            end
            while(v>1)
                v=v-2;
                u=u+1;
            end
            while(u-1)
                u=u+2;
            end
            while(u>1)
                u=u-2;
            end
            u=u/2+0.5;
            v=v/2+0.5;

            u=u*(N-1)+1;
            v=v*(M-1)+1;
            
            fv=floor(v);fv1=floor(v)+1;pv=v-fv;fv1(fv1>M)=M;
            fu=floor(u);fu1=floor(u)+1;pu=u-fu;fu1(fu1>N)=N;
            resultPic(x+1,y+1,:)=double(oriPic(fv,fu,:)).*(1-pv).*(1-pu)+...
                                 double(oriPic(fv1,fu,:)).*(pv).*(1-pu)+...
                                 double(oriPic(fv,fu1,:)).*(1-pv).*(pu)+...
                                 double(oriPic(fv1,fu1,:)).*(pv).*(pu);
        end
    end
    resultPic=uint8(resultPic);
end

函數調用及圖像存儲:
這里后面長寬數值可以任意設定,但是要求長寬數值一致,如果按照當前寫法,結果被存儲至result文件夾:

if ~exist('result','dir')
   mkdir('result');
end

for i=1:6
    resultPic=createCubeMapFace(oriPic,i,500,500);
    figure(i)
    imshow(resultPic)
    imwrite(resultPic,['result\',num2str(i),'.jpg'])
end

另: 如圖所示
圖片序號[1,2,3,4,5,6]分別對應圖片[右,后,左,前,上,下]

1.3 完整代碼

function panoramic2box
oriPic=imread('889027-884424860.jpg');
[rows,cols,~]=size(oriPic);

for i=cols:-1:1
    tempListR=oriPic(floor(rows/4):CEIL(3*rows/4),i,1);
    tempListG=oriPic(floor(rows/4):CEIL(3*rows/4),i,1);
    tempListB=oriPic(floor(rows/4):CEIL(3*rows/4),i,1);
    if all(round(tempListR-mean(tempListR))==0)all(tempListR==tempListG)all(tempListR==tempListB)
        oriPic(:,i,:)=[];
    else
        break;
    end
end
oriPic=oriPic(:,end:-1:1,:);
for i=size(oriPic,2):-1:1
    tempListR=oriPic(floor(rows/4):CEIL(3*rows/4),i,1);
    tempListG=oriPic(floor(rows/4):CEIL(3*rows/4),i,1);
    tempListB=oriPic(floor(rows/4):CEIL(3*rows/4),i,1);
    if all(round(tempListR-mean(tempListR))==0)all(tempListR==tempListG)all(tempListR==tempListB)
        oriPic(:,i,:)=[];
    else
        break;
    end
end
oriPic=oriPic(:,end:-1:1,:);
for i=rows:-1:1
    tempListR=oriPic(i,floor(cols/4):CEIL(3*cols/4),1);
    tempListG=oriPic(i,floor(cols/4):CEIL(3*cols/4),1);
    tempListB=oriPic(i,floor(cols/4):CEIL(3*cols/4),1);
    if all(round(tempListR-mean(tempListR))==0)all(tempListR==tempListG)all(tempListR==tempListB)
        oriPic(i,:,:)=[];
    else
        break;
    end
end
oriPic=oriPic(end:-1:1,:,:);
for i=size(oriPic,1):-1:1
    tempListR=oriPic(i,floor(cols/4):CEIL(3*cols/4),1);
    tempListG=oriPic(i,floor(cols/4):CEIL(3*cols/4),1);
    tempListB=oriPic(i,floor(cols/4):CEIL(3*cols/4),1);
    if all(round(tempListR-mean(tempListR))==0)all(tempListR==tempListG)all(tempListR==tempListB)
        oriPic(i,:,:)=[];
    else
        break;
    end
end
oriPic=oriPic(end:-1:1,:,:);
% =========================================================================
if ~exist('result','dir')
   mkdir('result');
end

for i=1:6
    resultPic=createCubeMapFace(oriPic,i,500,500);
    figure(i)
    imshow(resultPic)
    imwrite(resultPic,['result\',num2str(i),'.jpg'])
end



% =========================================================================
function resultPic=createCubeMapFace(oriPic,id,height,width)
    [M,N,~]=size(oriPic);
    resultPic=zeros([height,width,3]);
    an=sin(pi/4);
    ak=cos(pi/4);
    
    faceTransform=[0,0;
               pi/2,0;
               pi,0;
               -pi/2,0;
               0,-pi/2;
               0,pi];
    ftu=faceTransform(id,1);
    ftv=faceTransform(id,2);

    for y=0:height-1
        for x=0:width-1
            nx=y/height-0.5;
            ny=x/width-0.5;

            nx=nx*2*an;
            ny=ny*2*an;

            if (ftv == 0)
                u=atan2(nx, ak);
                v=atan2(ny*cos(u),ak);
                u=u+ftu;
            elseif(ftv>0)
                d=sqrt(nx*nx+ny*ny);
                v=pi/2-atan2(d,ak);
                u=atan2(ny,nx);
            else
                d=sqrt(nx*nx+ny*ny);
                v=-pi/2+atan2(d,ak);
                u=atan2(-ny,nx);
            end

            u=u/(pi);
            v=v/(pi/2);

            while(v-1)
                v=v+2;
                u=u+1;
            end
            while(v>1)
                v=v-2;
                u=u+1;
            end
            while(u-1)
                u=u+2;
            end
            while(u>1)
                u=u-2;
            end
            u=u/2+0.5;
            v=v/2+0.5;

            u=u*(N-1)+1;
            v=v*(M-1)+1;
            
            fv=floor(v);fv1=floor(v)+1;pv=v-fv;fv1(fv1>M)=M;
            fu=floor(u);fu1=floor(u)+1;pu=u-fu;fu1(fu1>N)=N;
            resultPic(x+1,y+1,:)=double(oriPic(fv,fu,:)).*(1-pv).*(1-pu)+...
                                 double(oriPic(fv1,fu,:)).*(pv).*(1-pu)+...
                                 double(oriPic(fv,fu1,:)).*(1-pv).*(pu)+...
                                 double(oriPic(fv1,fu1,:)).*(pv).*(pu);
        end
    end
    resultPic=uint8(resultPic);
end
end

1.4 其他幾組切割結果

圖片源自:https://www.cgmodel.com/article/9004.html






part2 盒圖展示

2.1 曲面繪制

使用surf繪制各個曲面后,并為各個曲面貼圖:

for i=1:6
    oriPic.(['p',num2str(i)])=imread(['result\',num2str(i),'.jpg']);   
end
[rows,cols,~]=size(oriPic.p1);
[baseXY,baseZ]=meshgrid(1:cols,rows:-1:1);

ax=gca;hold(ax,'on')


surf(baseXY(:,end:-1:1)-(1+rows)/2,-(rows-1)./2.*ones(size(baseXY)),baseZ,'CData',oriPic.p1,'EdgeColor','none','FaceColor','interp')
surf(-(rows-1)./2.*ones(size(baseXY)),baseXY-(1+rows)/2,baseZ,'CData',oriPic.p2,'EdgeColor','none','FaceColor','interp')
surf(baseXY-(1+rows)/2,(rows-1)./2.*ones(size(baseXY)),baseZ,'CData',oriPic.p3,'EdgeColor','none','FaceColor','interp')
surf((rows-1)./2.*ones(size(baseXY)),baseXY(:,end:-1:1)-(1+rows)/2,baseZ,'CData',oriPic.p4,'EdgeColor','none','FaceColor','interp')
surf(baseXY'-(1+rows)/2,baseXY-(1+rows)/2,ones(size(baseXY)),'CData',oriPic.p6(end:-1:1,end:-1:1,:),'EdgeColor','none','FaceColor','interp')
surf(baseXY'-(1+rows)/2,baseXY-(1+rows)/2,rows-1+ones(size(baseXY)),'CData',oriPic.p5(:,end:-1:1,:),'EdgeColor','none','FaceColor','interp')


2.2 視角調整

通過設置axes屬性將視角調整至盒子里面

ax=axes('parent',fig,'position',[-0.45 -0.45 1.9 1.9]);hold(ax,'on')
ax.ZLim=[0,rows+1];
ax.XLim=[0-(1+rows)/2,rows+1-(1+rows)/2];
ax.YLim=[0-(1+rows)/2,rows+1-(1+rows)/2];
ax.Color=[0 0 0];
ax.CameraPosition=[0,0,rows/2];
ax.CameraPositionMode='manual';
ax.DataAspectRatio=[1,1,1];
ax.DataAspectRatioMode='manual';
ax.Projection='perspective';
ax.CameraTargetMode='manual';
ax.CameraViewAngle = 7;
ax.View=[-2.7391 90.0000];
ax.CameraTarget=[0 0 (rows-1)/2];
ax.Toolbar.Visible='on';

運行后點擊那個三位旋轉按鈕即可開始漫游

此時的盒圖是無縫隙版本,有縫隙版放在后面

2.3 完整代碼

無縫隙版:

function showBox
for i=1:6
    oriPic.(['p',num2str(i)])=imread(['result\',num2str(i),'.jpg']);   
end
[rows,cols,~]=size(oriPic.p1);
[baseXY,baseZ]=meshgrid(1:cols,rows:-1:1);

fig=figure('units','pixels','position',[300 80 500 500],...
                       'Numbertitle','off','menubar','none','resize','off',...
                       'name','box');
                   

ax=axes('parent',fig,'position',[-0.45 -0.45 1.9 1.9]);hold(ax,'on')
ax.ZLim=[0,rows+1];
ax.XLim=[0-(1+rows)/2,rows+1-(1+rows)/2];
ax.YLim=[0-(1+rows)/2,rows+1-(1+rows)/2];
ax.Color=[0 0 0];
ax.CameraPosition=[0,0,rows/2];
ax.CameraPositionMode='manual';
ax.DataAspectRatio=[1,1,1];
ax.DataAspectRatioMode='manual';
ax.Projection='perspective';
ax.CameraTargetMode='manual';
ax.CameraViewAngle = 7;
ax.View=[-2.7391 90.0000];
ax.CameraTarget=[0 0 (rows-1)/2];
ax.Toolbar.Visible='on';




surf(baseXY(:,end:-1:1)-(1+rows)/2,-(rows-1)./2.*ones(size(baseXY)),baseZ,'CData',oriPic.p1,'EdgeColor','none','FaceColor','interp')
surf(-(rows-1)./2.*ones(size(baseXY)),baseXY-(1+rows)/2,baseZ,'CData',oriPic.p2,'EdgeColor','none','FaceColor','interp')
surf(baseXY-(1+rows)/2,(rows-1)./2.*ones(size(baseXY)),baseZ,'CData',oriPic.p3,'EdgeColor','none','FaceColor','interp')
surf((rows-1)./2.*ones(size(baseXY)),baseXY(:,end:-1:1)-(1+rows)/2,baseZ,'CData',oriPic.p4,'EdgeColor','none','FaceColor','interp')
surf(baseXY'-(1+rows)/2,baseXY-(1+rows)/2,ones(size(baseXY)),'CData',oriPic.p6(end:-1:1,end:-1:1,:),'EdgeColor','none','FaceColor','interp')
surf(baseXY'-(1+rows)/2,baseXY-(1+rows)/2,rows-1+ones(size(baseXY)),'CData',oriPic.p5(:,end:-1:1,:),'EdgeColor','none','FaceColor','interp')

end


有縫隙版:

function showBox2
for i=1:6
    oriPic.(['p',num2str(i)])=imread(['result\',num2str(i),'.jpg']);   
end
[rows,cols,~]=size(oriPic.p1);
[baseXY,baseZ]=meshgrid(1:cols,rows:-1:1);

fig=figure('units','pixels','position',[300 80 500 500],...
                       'Numbertitle','off','menubar','none','resize','off',...
                       'name','box');
                   

ax=axes('parent',fig,'position',[-0.45 -0.45 1.9 1.9]);hold(ax,'on')
ax.ZLim=[0,rows+1];
ax.XLim=[0-(1+rows)/2,rows+1-(1+rows)/2];
ax.YLim=[0-(1+rows)/2,rows+1-(1+rows)/2];
ax.Color=[0 0 0];
ax.CameraPosition=[0,0,rows/2];
ax.CameraPositionMode='manual';
ax.DataAspectRatio=[1,1,1];
ax.DataAspectRatioMode='manual';
ax.Projection='perspective';
ax.CameraTargetMode='manual';
ax.CameraViewAngle = 7;
ax.View=[-2.7391 90.0000];
ax.CameraTarget=[0 0 (rows+1)/2];
ax.Toolbar.Visible='on';




surf(baseXY(:,end:-1:1)-rows/2,-rows./2.*ones(size(baseXY)),baseZ,'CData',oriPic.p1,'EdgeColor','none','FaceColor','interp')
surf(-rows./2.*ones(size(baseXY)),baseXY-(1+rows)/2,baseZ,'CData',oriPic.p2,'EdgeColor','none','FaceColor','interp')
surf(baseXY-(1+rows)/2,rows./2.*ones(size(baseXY)),baseZ,'CData',oriPic.p3,'EdgeColor','none','FaceColor','interp')
surf(rows./2.*ones(size(baseXY)),baseXY(:,end:-1:1)-(1+rows)/2,baseZ,'CData',oriPic.p4,'EdgeColor','none','FaceColor','interp')
surf(baseXY'-(1+rows)/2,baseXY-(1+rows)/2,zeros(size(baseXY)),'CData',oriPic.p6(end:-1:1,end:-1:1,:),'EdgeColor','none','FaceColor','interp')
surf(baseXY'-(1+rows)/2,baseXY-(1+rows)/2,rows+ones(size(baseXY)),'CData',oriPic.p5(:,end:-1:1,:),'EdgeColor','none','FaceColor','interp')

end


以上就是MATLAB 全景圖切割及盒圖顯示的詳細內容,更多關于MATLAB 全景圖的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 在python中計算ssim的方法(與Matlab結果一致)
  • 使用matlab或python將txt文件轉為excel表格
  • 詳解python和matlab的優勢與區別
  • 實例詳解Matlab 與 Python 的區別
  • python調用matlab的m自定義函數方法
  • 詳解如何在python中讀寫和存儲matlab的數據文件(*.mat)
  • 簡述:我為什么選擇Python而不是Matlab和R語言

標簽:常德 惠州 益陽 四川 黑龍江 鷹潭 黔西 上海

巨人網絡通訊聲明:本文標題《MATLAB 全景圖切割及盒圖顯示的實現步驟》,本文關鍵詞  MATLAB,全景,圖,切割,及,盒圖,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MATLAB 全景圖切割及盒圖顯示的實現步驟》相關的同類信息!
  • 本頁收集關于MATLAB 全景圖切割及盒圖顯示的實現步驟的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美人伦禁忌dvd放荡欲情| 国产精品天干天干在观线| 久久众筹精品私拍模特| 蜜臀99久久精品久久久久久软件| 欧美日韩精品一区二区| 日韩av网站在线观看| 精品日韩在线观看| 国产成a人亚洲精品| 国产农村妇女精品| 久久福利资源站| 国产成人亚洲综合色影视| 久久久99精品免费观看不卡| 欧美日韩国产成人在线免费| 懂色av一区二区三区蜜臀| 北条麻妃一区二区三区| 久久午夜电影网| 韩国三级中文字幕hd久久精品| 538在线一区二区精品国产| 欧美少妇bbb| 欧美日韩精品一区二区三区| 欧美一区二区三区婷婷月色| 欧美一级久久久| 久久综合九色综合97_久久久| 精品国产乱码久久久久久牛牛| 精品国产一区二区三区忘忧草| 久久精品人人爽人人爽| 综合电影一区二区三区 | 性做久久久久久久免费看| 亚洲精品欧美专区| 午夜免费久久看| 国产真实精品久久二三区| 成人综合婷婷国产精品久久| 91久久精品网| 欧美不卡激情三级在线观看| 国产精品水嫩水嫩| 亚洲一本大道在线| 极品美女销魂一区二区三区免费| 99综合影院在线| 欧美xfplay| 亚洲最快最全在线视频| 国产综合久久久久久鬼色| 色噜噜狠狠色综合欧洲selulu| 日韩一二三四区| 18成人在线观看| 久久99精品久久久久久动态图| 99国产精品久久久久久久久久久| 91精品国产乱| 亚洲色图色小说| 久久99精品久久久久久动态图| 色狠狠av一区二区三区| 精品理论电影在线观看| 亚洲欧美韩国综合色| 激情小说亚洲一区| 51精品国自产在线| 亚洲丝袜另类动漫二区| 国产一区欧美一区| 91精品视频网| 一区二区三区成人| 成人国产亚洲欧美成人综合网| 日韩一区二区麻豆国产| 一区二区在线观看视频| 岛国av在线一区| 欧美精品一区二区三区蜜桃| 五月天亚洲精品| 日本电影欧美片| 国产精品狼人久久影院观看方式| 蜜桃免费网站一区二区三区 | 久久中文字幕电影| 免费成人结看片| 精品视频在线视频| 亚洲愉拍自拍另类高清精品| 91伊人久久大香线蕉| 国产精品久久久一区麻豆最新章节| 国精产品一区一区三区mba视频 | 亚洲精品视频观看| 不卡一区二区三区四区| 久久久久久久综合日本| 国产在线播放一区| 日韩精品一区二区三区老鸭窝 | 2019国产精品| 精品一区二区成人精品| 欧美一区二区三区成人| 欧美aa在线视频| 精品少妇一区二区| 国产一区二三区好的| 久久久久久久综合日本| 不卡欧美aaaaa| 亚洲欧美偷拍卡通变态| 在线免费一区三区| 亚洲国产精品精华液网站| 欧美亚洲精品一区| 亚洲国产日产av| 欧美日韩国产另类一区| 蜜桃av一区二区三区电影| 精品毛片乱码1区2区3区| 国产美女在线精品| 中文子幕无线码一区tr| 99久精品国产| 亚洲午夜羞羞片| 欧美一区二区三区不卡| 国产精品一区二区三区乱码| 久久精品人人做| 色中色一区二区| 日本成人中文字幕在线视频| 精品国产sm最大网站免费看| 成人亚洲精品久久久久软件| 亚洲黄网站在线观看| 欧美一级片在线看| 成人妖精视频yjsp地址| 天天综合色天天| 国产亚洲欧美中文| 在线一区二区三区四区| 国产尤物一区二区在线| 亚洲免费三区一区二区| 日韩欧美不卡在线观看视频| 成人性生交大片| 午夜视频一区二区三区| 久久久久久综合| 欧美日韩国产小视频| 国产成人精品免费视频网站| 亚洲一区二区视频| 精品欧美一区二区三区精品久久| 不卡在线观看av| 久久精品国产精品亚洲综合| 亚洲婷婷综合久久一本伊一区| 日韩一区二区三区四区| 99re在线视频这里只有精品| 欧美aaaaaa午夜精品| 一二三四社区欧美黄| 久久久精品蜜桃| 91精品国产综合久久福利| av中文字幕不卡| 国产一区在线不卡| 青娱乐精品在线视频| 亚洲激情综合网| 欧美激情在线一区二区| 日韩欧美一区二区久久婷婷| 色婷婷综合久久久久中文一区二区| 精品一区二区日韩| 日本视频一区二区| 一区二区三区在线观看国产| 国产蜜臀97一区二区三区| 日韩欧美国产麻豆| 欧美色图免费看| 色又黄又爽网站www久久| 国产精品一区二区无线| 美女网站在线免费欧美精品| 亚洲国产乱码最新视频 | 欧美一区二区精品在线| 欧美日韩精品三区| 99re8在线精品视频免费播放| 国内精品视频一区二区三区八戒| 日韩中文字幕一区二区三区| 一区二区三区久久| 日韩毛片高清在线播放| 国产精品免费视频观看| 久久久久久久久久美女| 精品三级在线看| 欧美大片日本大片免费观看| 日韩午夜激情免费电影| 777奇米四色成人影色区| 欧美高清性hdvideosex| 欧美精品色一区二区三区| 在线观看日韩av先锋影音电影院| 成人99免费视频| 91在线精品一区二区| 色综合久久天天| 在线视频你懂得一区二区三区| 在线观看视频一区| 欧美日韩一区二区电影| 6080午夜不卡| 精品欧美一区二区三区精品久久| 欧美v日韩v国产v| 久久久综合视频| 国产精品毛片高清在线完整版| 国产精品久久久久三级| 亚洲嫩草精品久久| 午夜视频在线观看一区二区| 琪琪久久久久日韩精品| 紧缚捆绑精品一区二区| 国产成人在线色| 99国产精品久久久| 欧美男男青年gay1069videost | 26uuu欧美| 国产精品视频一区二区三区不卡| 中文字幕中文字幕在线一区 | 国产精品亚洲专一区二区三区 | 一区二区三区欧美日| 亚洲午夜av在线| 日本系列欧美系列| 国产福利一区在线| 一本久久精品一区二区| 欧美精品在线观看播放| 久久久亚洲精品石原莉奈| 最新不卡av在线| 视频在线观看一区二区三区| 黄一区二区三区| 91麻豆国产香蕉久久精品| 欧美一区二区三区公司| 亚洲天堂免费看|