色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

灰度圖像均值濾波算法的HDL實(shí)現(xiàn)介紹

FPGA之家 ? 來(lái)源:FPGA之家 ? 2023-10-16 09:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.1均值濾波算法介紹

首先要做的是最簡(jiǎn)單的均值濾波算法。均值濾波是典型的線性濾波算法,它是指在圖像上對(duì)目標(biāo)像素給一個(gè)模板,該模板包括了其周?chē)呐R近像素(以目標(biāo)象素為中心的周?chē)?個(gè)像素,構(gòu)成一個(gè)濾波模板,即去掉目標(biāo)像素本身),再用模板中的全體像素的平均值來(lái)代替原來(lái)像素值。

P11 P12 P13
P21 P23
P31 P32 P33

中值濾波算法可以形象的用上述表格來(lái)描述,即對(duì)于每個(gè)3*3的陣列而言,中間像素的值,等于邊緣8個(gè)像素的平均值。算法的理論很簡(jiǎn)單,對(duì)于C處理器而言,一幅640*480圖像的均值濾波,可以很方便的通過(guò)數(shù)組獲得3*3的陣列,但對(duì)于我們的Verilog HDL而言,著實(shí)不易。

1.23*3像素陣列的HDL實(shí)現(xiàn)

3*3陣列的獲取,大概有以下三種方式:

(1)通過(guò)2個(gè)或3個(gè)RAM的存儲(chǔ),來(lái)實(shí)現(xiàn)3*3像素陣列;

(2)通過(guò)2個(gè)或3個(gè)FIFO的存儲(chǔ),來(lái)實(shí)現(xiàn)3*3像素陣列;

(3)通過(guò)2行或3行Shift_RAM的移位存儲(chǔ),來(lái)實(shí)現(xiàn)3*3像素陣列。

不過(guò)經(jīng)驗(yàn)告訴大家,最方便的實(shí)現(xiàn)方式,非Shift_RAM莫屬了,都感覺(jué)Shift_RAM甚至是為實(shí)現(xiàn)3*3陣列而生的!

Quartus II中,可以利用下圖方式產(chǎn)生,很方便:

首先介紹一下Shift_RAM,宏定義模塊如下圖所示:

a2f3310c-6b30-11ee-939d-92fbcf53809c.png

圖6?1 QuartusII Shift_RAM IP使用界面

Shift_RAM可定義數(shù)據(jù)寬度、移位的行數(shù)、每行的深度。這里我們固然需要8Bit,640個(gè)數(shù)據(jù)每行,同時(shí)移位寄存2行即可(原因看后邊)。同時(shí)選擇時(shí)鐘使能端口clken。詳細(xì)的關(guān)于Shift_RAM的手冊(cè)參數(shù),可在宏定義窗口右上角Document中查看,如下:

a3083606-6b30-11ee-939d-92fbcf53809c.png

手冊(cè)給出了一個(gè)非常形象的移位寄存示意圖,如下所示:

a318ddc6-6b30-11ee-939d-92fbcf53809c.png

圖6?2移位寄存示意圖

實(shí)現(xiàn)3*3像素陣列的大概的思路是這樣子的,Shift_RAM中存2行數(shù)據(jù),同時(shí)與當(dāng)前輸入行的數(shù)據(jù),組成3行的陣列。

在Vivado中就沒(méi)有類(lèi)似的IP,但是難不倒我,可以利用成熟的IP核實(shí)現(xiàn)類(lèi)似上訴的移位寄存器

在《Image?06_OV5640_DDR3_Gray_Mean_FilterOV5640_DEMOuserlinebuffer_Wapper》

中實(shí)現(xiàn)的就是移位寄存器功能的IP,使用方法類(lèi)似上訴QuartusII中的使用。

例化方式如下:

代碼6?1

1.//---------------------------------------
2.//moduleofshiftramforrawdata
3.wireshift_clk_en=per_frame_clken;
4.
5.linebuffer_Wapper#
6.(
7..no_of_lines(2),
8..samples_per_line(640),
9..data_width(8)
10.)
11.linebuffer_Wapper_m0(
12..ce(1'b1),
13..wr_clk(clk),
14..wr_en(shift_clk_en),
15..wr_rst(rst_n),
16..data_in(row3_data),
17..rd_en(shift_clk_en),
18..rd_clk(clk),
19..rd_rst(rst_n),
20..data_out({row2_data,row1_data})
21.);

源碼VIP_Matrix_Generate_3X3_8Bit文件中實(shí)現(xiàn)8Bit寬度的3*3像素陣列功能。具體的實(shí)現(xiàn)步驟如下:

(1)首先,將輸入的信號(hào)用像素使能時(shí)鐘同步一拍,以保證數(shù)據(jù)與Shift_RAM輸出的數(shù)據(jù)保持同步,如下:

代碼6?2

1.//Generate3*3matrix
2.//--------------------------------------------------------------------------
3.//--------------------------------------------------------------------------
4.//--------------------------------------------------------------------------
5.//syncrow3_datawithper_frame_clken&row1_data&raw2_data
6.wire[7:0]row1_data;//framedataofthe1throw
7.wire[7:0]row2_data;//framedataofthe2throw
8.reg[7:0]row3_data;//framedataofthe3throw
9.always@(posedgeclkornegedgerst_n)
10.begin
11.if(!rst_n)
12.row3_data<=?0;??
13.else
14.begin
15.if(per_frame_clken)
16.row3_data<=?per_img_Y;??
17.else
18.row3_data<=?row3_data;??
19.end
20.end

(2)接著,例化并輸入row3_data,此時(shí)可從Modelsim中觀察到3行數(shù)據(jù)同時(shí)存在了,HDL如下:

代碼6?3 QuartusII例化移位寄存器代碼

1.//---------------------------------------
2.//moduleofshiftramforrawdata
3.wireshift_clk_en=per_frame_clken;
4.Line_Shift_RAM_8Bit
5.#(
6..RAM_Length(IMG_HDISP)
7.)
8.u_Line_Shift_RAM_8Bit
9.(
10..clock(clk),
11..clken(shift_clk_en),//pixelenableclock
12.//.aclr(1'b0),
13..shiftin(row3_data),//Currentdatainput
14..taps0x(row2_data),//Lastrowdata
15..taps1x(row1_data),//Uparowdata
16..shiftout()
17.);

代碼6?4 Vivado例化移位寄存器代碼

22.//---------------------------------------
23.//moduleofshiftramforrawdata
24.wireshift_clk_en=per_frame_clken;
25.
26.linebuffer_Wapper#
27.(
28..no_of_lines(2),
29..samples_per_line(640),
30..data_width(8)
31.)
32.linebuffer_Wapper_m0(
33..ce(1'b1),
34..wr_clk(clk),
35..wr_en(shift_clk_en),
36..wr_rst(rst_n),
37..data_in(row3_data),
38..rd_en(shift_clk_en),
39..rd_clk(clk),
40..rd_rst(rst_n),
41..data_out({row2_data,row1_data})
42.);

在經(jīng)過(guò)Shift_RAMd移位存儲(chǔ)后,我們得到的row0_data,row1_data,row2_data的仿真示意圖如下所示:

a32b811a-6b30-11ee-939d-92fbcf53809c.png

圖6?3ModelSim仿真截圖

數(shù)據(jù)從row3_data輸入,滿3行后剛好唯一3行陣列的第一。從圖像第三行輸入開(kāi)始,到圖像的最后一行,我們均可從row_data得到完整的3行數(shù)據(jù),基為實(shí)現(xiàn)3*3陣列奠定了基礎(chǔ)。不過(guò)這樣做有2個(gè)不足之處,即第一行與第二行不能得到完整的3*3陣列。但從主到次,且不管算法的完美型,我們先驗(yàn)證3X3模板實(shí)現(xiàn)的正確性。因此直接在行有效期間讀取3*3陣列,機(jī)器方便快捷的實(shí)現(xiàn)了我們的目的。

(3)Row_data讀取信號(hào)的分析及生成

這里涉及到了一個(gè)問(wèn)題,數(shù)據(jù)從Shift_RAM存儲(chǔ)耗費(fèi)了一個(gè)時(shí)鐘,因此3*3陣列的讀取使能與時(shí)鐘,需要進(jìn)行一個(gè)clock的偏移,如下所示:

代碼6?5

1.//------------------------------------------
2.//lag2clockssignalsync
3.reg[1:0]per_frame_vsync_r;
4.reg[1:0]per_frame_href_r;
5.reg[1:0]per_frame_clken_r;
6.always@(posedgeclkornegedgerst_n)
7.begin
8.if(!rst_n)
9.begin
10.per_frame_vsync_r<=?0;??
11.per_frame_href_r<=?0;??
12.per_frame_clken_r<=?0;??
13.end
14.else
15.begin
16.per_frame_vsync_r<=???{per_frame_vsync_r[0],??per_frame_vsync};??
17.per_frame_href_r<=???{per_frame_href_r[0],???per_frame_href};??
18.per_frame_clken_r<=???{per_frame_clken_r[0],??per_frame_clken};??
19.end
20.end
21.//Giveupthe1thand2throwedgedatacaculateforsimpleprocess
22.//Giveupthe1thand2thpointof1lineforsimpleprocess
23.wireread_frame_href=per_frame_href_r[0];//RAMreadhrefsyncsignal
24.wireread_frame_clken=per_frame_clken_r[0];//RAMreadenable
25.assignmatrix_frame_vsync=per_frame_vsync_r[1];
26.assignmatrix_frame_href=per_frame_href_r[1];
27.assignmatrix_frame_clken=per_frame_clken_r[1];

(4)Okay,此時(shí)根據(jù)read_frame_href與read_frame_clken信號(hào),直接讀取3*3像素陣列。讀取的HDL實(shí)現(xiàn)如下:

代碼6?6

1. //----------------------------------------------------------------------------
2. //----------------------------------------------------------------------------
3. /******************************************************************************
4. ----------ConvertMatrix----------
5. [P31->P32->P33->]--->[P11P12P13]
6. [P21->P22->P23->]--->[P21P22P23]
7. [P11->P12->P11->]--->[P31P32P33]
8. ******************************************************************************/
9. //---------------------------------------------------------------------------
10. //---------------------------------------------------
11. /***********************************************
12. (1)ReaddatafromShift_RAM
13. (2)CaculatetheSobel
14. (3)SteadydataafterSobelgenerate
15. ************************************************/
16. //wire[23:0]matrix_row1={matrix_p11,matrix_p12,matrix_p13};//Justfortest
17. //wire[23:0]matrix_row2={matrix_p21,matrix_p22,matrix_p23};
18. //wire[23:0]matrix_row3={matrix_p31,matrix_p32,matrix_p33};
19. always@(posedgeclkornegedgerst_n)
20. begin
21. if(!rst_n)
22. begin
23. {matrix_p11,matrix_p12,matrix_p13}<=?24'h0;??
24. {matrix_p21,matrix_p22,matrix_p23}<=?24'h0;??
25. {matrix_p31,matrix_p32,matrix_p33}<=?24'h0;??
26. end
27. elseif(read_frame_href)
28. begin
29. if(read_frame_clken)//Shift_RAMdatareadclockenable
30. begin
31. {matrix_p11,matrix_p12,matrix_p13}<=?{matrix_p12,?matrix_p13,?row1_data};?//1th?shift?input??
32. {matrix_p21,matrix_p22,matrix_p23}<=?{matrix_p22,?matrix_p23,?row2_data};?//2th?shift?input??
33. {matrix_p31,matrix_p32,matrix_p33}<=?{matrix_p32,?matrix_p33,?row3_data};?//3th?shift?input??
34. end
35. else
36. begin
37. {matrix_p11,matrix_p12,matrix_p13}<=?{matrix_p11,?matrix_p12,?matrix_p13};??
38. {matrix_p21,matrix_p22,matrix_p23}<=?{matrix_p21,?matrix_p22,?matrix_p23};??
39. {matrix_p31,matrix_p32,matrix_p33}<=?{matrix_p31,?matrix_p32,?matrix_p33};??
40. end
41. end
42. else
43. begin
44. {matrix_p11,matrix_p12,matrix_p13}<=?24'h0;??
45. {matrix_p21,matrix_p22,matrix_p23}<=?24'h0;??
46. {matrix_p31,matrix_p32,matrix_p33}<=?24'h0;??
47. end
48. end

最后得到的matrix_p11、p12、p13、p21、p22、p23、p31、p32、p33即為得到的3*3像素陣列,仿真時(shí)序圖如下所示:

a33c0c92-6b30-11ee-939d-92fbcf53809c.png

前面Shift_RAM存儲(chǔ)耗費(fèi)了一個(gè)時(shí)鐘,同時(shí)3*3陣列的生成耗費(fèi)了一個(gè)時(shí)鐘,因此我們需要人為的將行場(chǎng)信號(hào)、像素使能讀取信號(hào)移動(dòng)2個(gè)時(shí)鐘,如下所示:

assign matrix_frame_vsync =per_frame_vsync_r[1];

assign matrix_frame_href =per_frame_href_r[1];

assign matrix_frame_clken =per_frame_clken_r[1];

至此我們得到了完整的3*3像素陣列的模塊,同時(shí)行場(chǎng)、使能時(shí)鐘信號(hào)與時(shí)序保持一致,Modelsim仿真圖如下所示:

a35689dc-6b30-11ee-939d-92fbcf53809c.png

1.3Mean_Filter均值濾波算法的實(shí)現(xiàn)

不過(guò)相對(duì)于3*3像素陣列的生成而言,均值濾波的算法實(shí)現(xiàn)反而難度小的多,只是技巧性的問(wèn)題。

繼續(xù)分析上面這個(gè)表格。其實(shí)HDL完全有這個(gè)能力直接計(jì)算8個(gè)值相加的均值,不過(guò)為了提升電路的速度,建議我們需要通過(guò)以面積換速度的方式來(lái)實(shí)現(xiàn)。So這里需要3個(gè)步驟:

(1)分別計(jì)算3行中相關(guān)像素的和;

(2)計(jì)算(1)中三個(gè)結(jié)果的和;

在(2)運(yùn)算后,我們不能急著用除法去實(shí)現(xiàn)均值的運(yùn)算。記住,能用移位替換的,絕對(duì)不用乘除法來(lái)實(shí)現(xiàn)。這里8個(gè)像素,即除以8,可以方便的用右移動(dòng)3Bit來(lái)實(shí)現(xiàn)。不過(guò)這里更方便的辦法是,直接提取mean_value4[10:3]。

這一步我們不單獨(dú)作為一個(gè)Step,而是直接作為結(jié)果輸出。分析前面的運(yùn)算,總共耗費(fèi)了2個(gè)時(shí)鐘,因此需要將行場(chǎng)信號(hào)、像素讀取信號(hào)偏移2個(gè)時(shí)鐘,同時(shí)像素時(shí)鐘,根據(jù)行信號(hào)使能,直接讀取mean_value4[10:3],如下所示:

這樣,我們便得到了運(yùn)算后的時(shí)序,實(shí)現(xiàn)了均值濾波算法。

最后,在Video_Image_Processor頂層文件中例化Gray_Mean_Filter算法模塊,完成算法的添加。

最后直接將生成的post_img_Y輸入給24Bit的DDR控制器即可。









審核編輯:劉清

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

    關(guān)注

    8

    文章

    1391

    瀏覽量

    117227
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    330

    瀏覽量

    47970
  • 移位寄存器
    +關(guān)注

    關(guān)注

    3

    文章

    288

    瀏覽量

    22703
  • 濾波算法
    +關(guān)注

    關(guān)注

    2

    文章

    89

    瀏覽量

    13939
  • FIFO存儲(chǔ)
    +關(guān)注

    關(guān)注

    0

    文章

    103

    瀏覽量

    6177

原文標(biāo)題:灰度圖像的均值濾波算法的 HDL 實(shí)現(xiàn)

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于FPGA的均值濾波算法實(shí)現(xiàn)

      我們?yōu)榱?b class='flag-5'>實(shí)現(xiàn)動(dòng)態(tài)圖像濾波算法,用串口發(fā)送圖像數(shù)據(jù)到FPGA開(kāi)發(fā)板,經(jīng)FPGA進(jìn)行圖像處理
    發(fā)表于 01-02 16:26 ?5438次閱讀

    基于FPGA的HDTV視頻圖像灰度直方圖統(tǒng)計(jì)算法設(shè)計(jì)

    本文介紹了如何在FPGA 中利用Block RAM 的特殊結(jié)構(gòu)實(shí)現(xiàn)HDTV 視頻增強(qiáng)算法灰度直方圖統(tǒng)計(jì)。灰度直方圖統(tǒng)計(jì)
    發(fā)表于 05-14 12:37

    請(qǐng)教一種可識(shí)別未受污染點(diǎn)的中值/均值濾波matlab程序

    小弟最近需要學(xué)習(xí)一種關(guān)于灰度圖像去噪的改進(jìn)算法,它需要在原始的中值濾波或者均值濾波器上加以改進(jìn),
    發(fā)表于 03-30 17:06

    基于FPGA的均值濾波算法實(shí)現(xiàn)

    均值濾波如圖所示,我們要進(jìn)行均值濾波首先要生成一個(gè)3x3矩陣。算法運(yùn)算窗口一般采用奇數(shù)點(diǎn)的鄰域來(lái)計(jì)算中值,最常用的窗口有3X3和5X5模型
    發(fā)表于 08-28 11:34

    基于FPGA的中值濾波算法實(shí)現(xiàn)

    均值濾波算法實(shí)現(xiàn)第五篇:深刻認(rèn)識(shí)Shift RAM學(xué)習(xí)筆記番外篇:數(shù)字圖像處理界標(biāo)準(zhǔn)圖像 Le
    發(fā)表于 09-01 07:04

    數(shù)字圖像空域濾波算法的FPGA設(shè)計(jì)與實(shí)現(xiàn)

    本文采用的圖像是256×256大小的灰度圖像濾波模板3×3大小。如何設(shè)計(jì)硬件電路來(lái)完成上述空域濾波算法
    發(fā)表于 01-18 12:12 ?1063次閱讀
    數(shù)字<b class='flag-5'>圖像</b>空域<b class='flag-5'>濾波</b><b class='flag-5'>算法</b>的FPGA設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    灰度相關(guān)和區(qū)域特征的圖像拼接算法

    本文提出一種結(jié)合灰度特點(diǎn)和區(qū)域特征的圖像拼接算法。首先采用灰度直方圖均衡化的方法降低光照條件不同造成的灰度差異;其次為減少匹配塊的計(jì)算量,在
    發(fā)表于 03-07 15:34 ?60次下載
    <b class='flag-5'>灰度</b>相關(guān)和區(qū)域特征的<b class='flag-5'>圖像</b>拼接<b class='flag-5'>算法</b>

    一種加權(quán)均值濾波的改進(jìn)算法

    根據(jù)椒鹽噪聲污染圖像灰度值取值范圍的變化,提出了一種改進(jìn)的加權(quán)均值濾波算法。實(shí)驗(yàn)結(jié)果表明,該方法能有效地去除椒鹽噪聲,同時(shí)保留了
    發(fā)表于 05-16 17:37 ?49次下載

    均值濾波均值濾波算法程序

    均值濾波是典型的線性濾波算法,它是指在圖像上對(duì)目標(biāo)像素給一個(gè)模板,該模板包括了其周?chē)呐R近像素(以目標(biāo)像素為中心的周?chē)鷤€(gè)像素,構(gòu)成一個(gè)
    發(fā)表于 12-19 15:35 ?6927次閱讀

    基于FPGA灰度圖像高斯濾波算法實(shí)現(xiàn)

    FPGA仿真篇-使用腳本命令來(lái)加速仿真二 基于FPGA的HDMI高清顯示借口驅(qū)動(dòng) 基于FPGA灰度圖像高斯濾波算法實(shí)現(xiàn) FPGA為什么比C
    發(fā)表于 02-20 20:49 ?7828次閱讀
    基于FPGA<b class='flag-5'>灰度</b><b class='flag-5'>圖像</b>高斯<b class='flag-5'>濾波</b><b class='flag-5'>算法</b>的<b class='flag-5'>實(shí)現(xiàn)</b>

    如何使用FPGA實(shí)現(xiàn)圖像的中值濾波算法

    圖像濾波圖像預(yù)處理過(guò)程中葦要的組成部分,而基于FPGA的濾波算法相對(duì)軟件算法而言具有高度的并行
    發(fā)表于 04-01 11:21 ?42次下載
    如何使用FPGA<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>圖像</b>的中值<b class='flag-5'>濾波</b><b class='flag-5'>算法</b>

    如何使用FPGA實(shí)現(xiàn)圖像灰度級(jí)拉伸算法

    為了調(diào)整圖像數(shù)據(jù)灰度介紹了一種圖像灰度級(jí)拉伸算法的FPGA
    發(fā)表于 04-01 14:14 ?10次下載
    如何使用FPGA<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>圖像</b><b class='flag-5'>灰度</b>級(jí)拉伸<b class='flag-5'>算法</b>

    如何使用FPGA實(shí)現(xiàn)圖像灰度級(jí)拉伸算法

    為了調(diào)整圖像數(shù)據(jù)灰度介紹了一種圖像灰度級(jí)拉伸算法的FPGA
    發(fā)表于 04-01 14:14 ?1次下載
    如何使用FPGA<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>圖像</b><b class='flag-5'>灰度</b>級(jí)拉伸<b class='flag-5'>算法</b>

    詳解從均值濾波到非局部均值濾波算法的原理及實(shí)現(xiàn)方式

    將再啰嗦一次,詳解從均值濾波到非局部均值濾波算法的原理及實(shí)現(xiàn)方式。 細(xì)數(shù)主要的2D降噪
    的頭像 發(fā)表于 12-19 16:30 ?2311次閱讀
    詳解從<b class='flag-5'>均值</b><b class='flag-5'>濾波</b>到非局部<b class='flag-5'>均值</b><b class='flag-5'>濾波</b><b class='flag-5'>算法</b>的原理及<b class='flag-5'>實(shí)現(xiàn)</b>方式

    FPGA上的圖像處理算法集成與優(yōu)化

    、Tophat形態(tài)學(xué)濾波、RAW8轉(zhuǎn)RGB888、彩色圖像均值濾波、Alpha背景疊加、直方圖灰度拉伸
    的頭像 發(fā)表于 02-14 13:46 ?602次閱讀
    FPGA上的<b class='flag-5'>圖像</b>處理<b class='flag-5'>算法</b>集成與優(yōu)化
    主站蜘蛛池模板: 亚洲黄色在线观看 | 亚洲AV电影天堂男人的天堂 | 午夜想想爱 | 免费人成在线观看网站视频 | 在线不卡日本v二区到六区 在线不卡日本v二区 | 国精产品一区一区三区M | 人妻免费久久久久久久了 | 婷婷精品国产亚洲AV在线观看 | 久久伊人精品青青草原2021 | 亚洲欧美另类无码专区 | 中文字幕国产视频 | 久久这里有精品 | 国产99视频精品免费播放 | 亚洲国产综合另类视频 | 嫩草国产福利视频一区二区 | 国产精品久久免费视频 | 99pao成人国产永久免费视频 | 曰本aaaaa毛片午夜网站 | 久久久GOGO无码啪啪艺术 | 99九九99九九九视频精品 | 色宅男午夜电影网站 | 玩高中女同桌肉色短丝袜脚文 | 欧美精品色婷婷五月综合 | 18禁无遮挡羞羞污污污污免费 | 亚洲一区免费香蕉在线 | 国产一卡2卡3卡4卡孕妇网站 | 中文字幕精品视频在线 | 夫妻日本换H视频 | 玉林天天论坛 | 成人亚洲乱码在线 | 簧片在线免费观看 | 狠狠人妻久久久久久综合九色 | 欧洲-级毛片内射八十老太婆 | 三级色视频 | 开心成人社区 | 在线播放毛片 | 韩国电影real在线观看完整版 | 激情内射亚洲一区二区三区爱妻 | 18禁国产精品久久久久久麻豆 | 午夜理伦片免费 | 久久理论片 |

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品