freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單目手勢識別交互系統(tǒng)畢業(yè)設(shè)計論文(編輯修改稿)

2025-07-20 00:37 本頁面
 

【文章內(nèi)容簡介】 可稱為圖像噪聲。噪聲被定義為“不可預(yù)測而只能用概率統(tǒng)計的方法,來認識的隨機誤差”。圖片噪聲按產(chǎn)生的原因可分為外部噪聲和內(nèi)部噪聲。外部噪聲是指由于系統(tǒng)外部干擾以電磁波或由電源串進系統(tǒng)內(nèi)部而引起的噪聲。如電氣設(shè)備,天體放電現(xiàn)象等引起的噪聲,而這種噪聲可能就是高斯噪聲、脈沖噪聲等多個噪聲合成累計的。內(nèi)部噪聲主要是由光和電的基本性質(zhì)所引起的噪聲。如電流的產(chǎn)生是由空穴或電子的集合,定向運動所形成的,而這些粒子運動的帶有隨機性,產(chǎn)生了散粒噪聲;而導體中也有自由電子,它們會進行無規(guī)則熱運動,形成熱噪聲。為了消除這些隨機因素,可以通過中值濾波或均值濾波的方法法進行濾波。對應(yīng)的OpenCV函數(shù)是:void cvSmooth( const CvArr* src, CvArr* dst,int smoothtype=CV_GAUSSIAN,int param1=3, int param2=0, double param3=0 ,double param4=0)。其中smoothtype 是CV_GAUSSIAN時將對圖像進行大小為 param1param2 的高斯卷積的均值濾波。而 smoothtype 是CV_MEDIAN時將對圖像進行大小為param1param1 的中值濾波,注意為param1奇數(shù),且不大于7,其效果結(jié)果如下圖所示:(a)原圖 (b) CV_GAUSSIAN (c) CV_MEDIAN CvSmooth的不同smoothtype的比較可以看出,中值濾波對邊緣的保留效果較強,但實際執(zhí)行的速度較慢。不過這些降噪變換都會導致有效細節(jié)的丟失。為此可以將圖片用按一定閾值還原,這分為兩種方法——還原與原圖像相差小的部分和與還原原圖像相差大的部分,為了保持還原后的連續(xù)性,可以設(shè)置成不在符合閾值內(nèi)的圖像的保留度再按跟還原原圖像相差值線性變化,: 中值濾波后的圖形 原圖 低閾值保留后的圖形 高閾值保留后的圖形從上圖可以看出,還原與原圖像相差小的部分可以消除一些突兀的部分,可稱為椒鹽噪聲,使得圖像看起來比較柔和,但形體內(nèi)部的與原圖像相差小斑紋仍然存在;而還與原原圖像相差大的部分則可以讓形體內(nèi)部的斑紋大大減弱或消失,使得圖像看起來比較平滑,但是突兀的部分也因此更加明顯。因此,這兩種還原算法需要配合起來使用才能起到效果,以便于識別為目的,可以使用先還原相差小的部分,并用這個結(jié)果作為原圖,再還原相差大的部分。如圖所示,效果已經(jīng)綜合了上述兩種效果的優(yōu)點。 原圖 雙重還原后的圖像 圖片的銳化經(jīng)過圖片的降噪處理后會顯得比較朦朧,有時候需要進行USM銳化方可實現(xiàn)更好的邊緣提取。為此可以先用cvSmooth,smoothtype選CV_GAUSSIAN進行均值濾波到一個臨時圖像,然后按一定閾值將原圖像與臨時圖像的像素反差擴大即可,反差擴大的公式為:式中,x表示原圖像的亮度,表示臨時圖像的亮度,k表示銳化的強度(k1),X表示目標圖像的亮度。而通過原圖像與臨時圖像的色差的閾值的調(diào)整,可以減少一些不需要銳化的區(qū)域,但如上所述,會造成邊緣突兀和不連續(xù),為此也可以將位于原圖像與臨時圖像的亮度差在閾值內(nèi)部分的銳化強度,按這個亮度差線性減弱。:(a)銳化前 (b)銳化后 銳化前后的圖像比較 3 手的區(qū)域的提取基于計算機視覺的手勢識別的首要任務(wù)就是要將手和背景區(qū)分開,而背景環(huán)境往往會十分復(fù)雜,前面通過一系列的降噪和銳化實現(xiàn)了冗余信息的剔除和重要信息的強化,從而為之后的工作提供了便利。而這里將討論如何盡可能準確地將手所在的區(qū)域從復(fù)雜的背景中提取出來。 膚色種子的獲取如圖所示,隨著不同人之間的差異和光線的變化,以及某些攝像頭的自動對光功能,均會導致膚色出現(xiàn)變化,為此,很多時候需要以一種快捷的手段根據(jù)現(xiàn)場情況進行調(diào)整。從上圖中還可以看出,手自身的顏色特別是亮度是有變化的,如果以手的平均顏色作為膚色的種子,將會導致可選擇的范圍的減少。因此這里采用了在圖上手的位置單擊某一點,并獲得這一點的顏色,用試探法選擇到最合適的膚色作為手的顏色種子來跟背景區(qū)分開來;同時也提供了用自定義的顏色作為種子來靈活應(yīng)對。 獲取鼠標相對圖像位置的顏色要在單擊鼠標時獲取鼠標相對圖像位置的顏色,需要處理這個圖像所在控件的點擊事件。CStatic控件還需要首先將其Notify屬性設(shè)置成True,以指定這個控件在單擊和雙擊時對父級控件發(fā)出通知。要獲取鼠標相對于圖像的坐標可以通過先獲取鼠標的屏幕坐標,再將該坐標轉(zhuǎn)成相對于控件的坐標來實現(xiàn),如下圖。CPoint point。//定義點↓GetCursorPos(amp。point)。//獲取鼠標在屏幕上的坐標↓GetDlgItem(IDC_STATIC1)ScreenToClient(amp。point)。//獲取相對于控件上的坐標圖31 獲取鼠標相對于某個控件的坐標要在單擊鼠標時獲取鼠標相對圖像位置的顏色,需要處理這個圖像所在控件的點擊事件。CStatic控件還需要首先將其Notify屬性設(shè)置成True,以指定這個控件在單擊和雙擊時對父級控件發(fā)出通知。設(shè)m_Frame為IplImage*的圖片,src為它的imageData的開頭,則鼠標在圖像的坐標(x0,y0)上的像素指針為mByte=src+x0*(m_FramenChannels)+y0*(m_FramewidthStep)。關(guān)于這一像素的COLORREF顏色:colour=(int)mByte[0]16|(int)mByte[1]8|(int)mByte[2]。需要注意的是,圖像不一定充滿整個控件,如果在空間外將會出現(xiàn)一些越界的情況,為此需要判斷這個點是否在圖像上:if(x0=0 amp。amp。 x0m_Framewidth || y0=0 amp。amp。 y0m_Frameheight) 自定義膚色種子自定義種子顏色可以用CColorDialog——Windows自帶的調(diào)色對話框來實現(xiàn),然后將其寫入到控件中即可實現(xiàn),它的構(gòu)造方法是:CColorDialog dlg(colour0,CC_FULLOPEN)。//參數(shù)為默認顏色,打開方式(這里是全打開)()的方法可以返回調(diào)好的COLORREF顏色。 基于手與背景在一定顏色模型上的區(qū)別的初步提取從上所述,膚色在顏色空間的分布相當集中,但會受到光照強度和不同人之間的很大影響。為了減少膚色受照明強度影響,通常將顏色空間從RGB轉(zhuǎn)換到亮度與色度分離的某個顏色空間,比如YUV、Lab或HSL,然后放棄亮度分量。在雙色差或色調(diào)飽和度平面上,不同人的膚色區(qū)別較小,膚色的不同更多在亮度上而不是色度上。[7]OpenCV中實現(xiàn)上述方法的函數(shù)為void cvCvtColor( const CvArr* src, CvArr* dst, int code ),其中src輸入的是原圖像指針,而IplImage繼承了CvArr,有時需要將用整數(shù)信息存儲的圖片轉(zhuǎn)換為一定精度的浮點圖;dst輸入的是目標圖像的指針;code是色彩空間轉(zhuǎn)換的模式,該code來實現(xiàn)不同類型的顏色空間轉(zhuǎn)換。比如當code選用CV_BGR2HSV時,對于8位圖,需要將RGB值歸一化到01之間。這樣得到HSV圖中的H取值范圍才是[0,360),S和V的取值范圍是[01]。由于顏色模型的不同,轉(zhuǎn)換以后的對手的范圍的提取方法也有所不同。具體來講,如果用原始的rgb顏色模型的圖片來提取,那么可以用r、g、b三種通道各自與膚色種子的色差的最大值來判定圖像上的某點是否在手上;如果用顏色模型為一個亮度通道+兩個顏色通道的圖片,則可以通過先遍歷整個圖像,把每一點的像素歸化到[0,255]的整數(shù)范圍中,再將兩個顏色通道移到統(tǒng)一的位置進行統(tǒng)一的色差最大值判定。 將手的范圍擴展到其他區(qū)域在復(fù)雜光線條件下,比如圖所示的膚色在高光區(qū)或陰影區(qū)中導致亮度存在不同,有些部分并沒有被選上;還有如圖所示的情況,由于手在不同位置的代謝情況的不同和指紋關(guān)系,導致顏色也存在著不同,從而有些另外的部分也沒有被選上。但是從圖中又可以看得出,這些區(qū)域與選取到的區(qū)域之間并不存在明顯的邊緣,因此可以通過一種多次迭代的方法,將這些區(qū)域周邊按一定的色差閾值進行擴散,直到擴散了0個像素為止。(a)擴散前(b)擴散后 選取擴散前后的對比 外部孤立點的消去經(jīng)過如上圖所示的處理中,可以發(fā)現(xiàn)圖片中存在一些比較小的一些孤立的區(qū)域被選中了,如人的頭部,書架、椅子、窗簾等,它們的顏色與手的顏色相近,但是其共同點是都在在手的后面,而且所占的面積比手的要小。為此可以通過獲取最大的連通區(qū)域的方法來去掉一些不合理的選取, 所示。(a)消去前(b)消去后 外部孤立點的消去目標獲取最大的連通區(qū)域包括三步:獲取連通區(qū)域的面積并在每個像素標記區(qū)域的id→找出面積的最大值和對應(yīng)的區(qū)域id→將面積信息非最大的區(qū)域置為未選中。可以通過遞歸的方法實現(xiàn)以上功能,但由于遞歸要調(diào)用windows系統(tǒng)的堆棧,而這個堆棧的大小不能超過2M,因此還需要將這個算法實現(xiàn)成非遞歸的。這里由于棧的大小不會超過整個圖片面積的整數(shù)倍,因而提供的棧可以選擇一個中間的IplImage作為存儲,這就要求這個IplImage的通道數(shù)足夠。為此可以選擇一個彩色的24位RGB圖作為棧來儲存當前遍歷的位置信息。為此需要將位置的兩個值——x和y的坐標通過移位運算的方式壓縮在24位長的變量中。整理以上之后,算法可以分以下幾步完成。 獲取連通區(qū)域的面積和標記區(qū)域ID 當一個點首次到達一個連通區(qū)域(未計算)時,即開始計算這個區(qū)域的面積,算完該面積后再進去這個區(qū)域(已計算)將不會再重新算。計算面積的步驟如下: 進入堆棧計算面積循環(huán),并將當前坐標壓入堆棧。面積計數(shù)加一堆棧彈出一格上下左右是否為被選中區(qū)域且未被計算讀取棧中坐標被選中的相鄰節(jié)點分別壓入堆棧該坐標置為已計算并標記區(qū)域ID棧是否為空返回面積計數(shù),結(jié)束是否否是 外部孤立點的消去算法在數(shù)據(jù)的結(jié)構(gòu)上,將原圖像副本信息拷貝后,兩個臨時圖片memopic和temppic將分別儲存不同的中間信息。memopic的每個像素的24位整形中,前12位(unsigned char a,b)表示遍歷游標的橫坐標(int i),后12位(unsigned char b,c)表示遍歷游標的縱坐標(int j)。其讀取和寫入的方法如下:讀?。篿=(int)a4|(int)b4。j=((int)camp。15)8|(int)c。寫入:a=(uchar)(i4amp。255)。 b=(uchar)((iamp。15)4|j8amp。15)。c=(uchar)(jamp。255)。temppic的每個像素的24位整形中,儲存像素點遍歷的狀態(tài):0:原先未選取;1:原先已選取但未參與面積計算;1:原先已選取并已參與面積計算,表示區(qū)域的ID(從2開始)。 最大面積和對應(yīng)區(qū)域的獲取 最大面積的獲取的語句是if
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1