日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

OpenCV学习笔记(五十一)——imge stitching图像拼接stitching OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。 OpenCV学习笔记(五

發布時間:2025/3/21 编程问答 20 豆豆

OpenCV學習筆記(五十一)——imge stitching圖像拼接stitching

stitching是OpenCV2.4.0一個新模塊,功能是實現圖像拼接,所有的相關函數都被封裝在Stitcher類當中。這個類當中我們可能用到的成員函數有createDefault、estimateTransform、composePanorama、stitch。其內部實現的過程是非常繁瑣的,需要很多算法的支持,包括圖像特征的尋找和匹配,攝像機的校準,圖像的變形,曝光補償和圖像融合。但這些模塊的接口、調用,強大的OpenCV都為我們搞定了,我們使用OpenCV做圖像拼接,只需要調用createDefault函數生成默認的參數,再使用stitch函數進行拼接就ok了。就這么簡單!estimateTransform和composePanorama函數都是比較高級的應用,如果各位對stitching的流程不是很清楚的話,還是慎用。

實例也非常簡單,下載鏈接哦:http://download.csdn.net/detail/yang_xian521/4321158。

輸入原圖(為了顯示,我都壓縮過):






OpenCV學習筆記(五十二)——號外:OpenCV 2.4.1 又出來了。。。。。

距離2.4.0放出來才一個月。兒童節當天2.4.1就出爐了。。。。真心跟不上節奏啊,路漫漫其修遠兮。。。。

這次主要的改變還是bug的修訂,之前有朋友告訴我,說他的2.3.1版本說什么都不能成功配置CUDA,后來他用2.2版本就成功了,看來新出的版本bug還是很多的,也不能盲目求新。這次的2.4.1版本更新如下:

GPU模塊支持了CUDA4.1、CUDA4.2版本,添加了一個文件字符串存儲回讀的API接口

完善了光流法的clacOpticalFlowPyrLK,支持了金字塔圖像作為輸入

完善了文檔,使文檔和版本更加對應

修正了SURF、MSER的python包裝

修正了其他45處bug

最近更新比較慢,感覺沒有學習OpenCV過程有新的太大收獲,還請見諒



OpenCV學習筆記(五十三)——新版本2.4.2簡介&FREAK和ORB特征描述子效果對比features2d

OpenCV 2.4.2簡介

OpenCV從未放慢自己前進的步法,就在7月4日,最新版的2.4.2又放出來了。與之同時放出的還有兩個網站http://opencv.org/和http://answers.opencv.org,前者作為一個正式的全新的官方用戶網站,簡單瀏覽了一下,應該是一個對應之前維基百科上的那個網站,是一個介紹性的新聞網站,對開發者的意義可能不是太大;后面這個網站就厲害了,是一個類似google討論組一樣的交流區,大家可以在上面提問,留言,解答,我也剛剛注冊了個用戶,剛成立沒幾天已經有60多個問題了,應該還是很活躍的一個討論區。

還是老樣子,介紹一下新版本的更新以及改動:

現在支持IOS操作系統了!開發iphone的朋友們,你們也可以用OpenCV了,是不是內牛滿面。

添加了一個新的特征點描述算法FREAK,這也是今年的CVPR的一個新算法,也是一個2值的特征,文章里說是根據人視網膜的原理,挺玄乎的,據說是效果比ORB和SURF都好,我要試試看。

對GPU的模塊進一步優化,對個別算法的性能有較大提升。

還修正了2.4.1的50多個bug。

介紹就這么多,感覺亮點就是網站的建設和這個FREAK特征,其他的還得慢慢摸索啊

FREAK和ORB特征描述子效果對比

ORB就是BRIEF的改進,BRIEF太簡單了,就不介紹了,有興趣的朋友自己看paper吧。ORB的paper我讀下來,感覺改進主要有以下幾點:用FAST作為特征點提取的算法,更快了,添加了特征點的主方向,這樣就具有了旋轉不變性。最后一點其實我也想到了,當時看BRIEF的時候就想應該可以優化,就是ORB采用貪婪窮舉的方法得到了相關性較低的隨機點對,還有一個改進就是對于隨機點對,受噪聲的影響很大BRIEF的辦法就是對原圖像濾波,降低噪聲的影響,ORB不在使用像素點的直接比較,而是選擇該像素為中心的一個小patch作為比較對象,提高了抗噪能力

FREAK我只是大致看了下,理解可能不到位,我的理解是這個算法是基于人眼視網膜細胞的分布,中間密集,四周稀疏,從而在圖像中構建很多的區域,當然越靠近中心的區域采樣更密集,四周區域采樣稀疏,隨機對比各區域的像素得到一組2值特征,這個算法也關注了尺度和方向的問題,都有對應的解決辦法,還根據了人眼看事物時眼睛不停的轉動,設計了一種級聯的搜索器,總而言之,我感覺這個算法也是受ORB和BRISK這種2值特征的啟發下的一種改進吧。

下面就利用OpenCV對其進行一下對比,值得說明的是,在2.4.2中,FREAK給出了pattern的訓練代碼

對比實驗效果如下:(上圖為ORB,下圖為FREAK)



經過篩選之后的特征點如下圖:(上圖為ORB,下圖為FREAK)



當然,我這里只是個簡單的測試,其實并不能完全反應實際的性能,因為我這里FREAK的特征點位置的檢測用的是SURF,而ORB用的是FAST。但從我這里的比較效果來看,ORB要好很多。下面讓我來對比一下算法的運行時間:

?ORBFREAK detectionFREAK extraction
debug0.317s0.301s0.167s
release0.094s0.162s0.085s

雖然兩種算法不能直接比較,因為FREAK沒有提供特征點位置檢測的算法,個人感覺如果FREAK采用FAST來做detection,確實速度應該要逼ORB要快一些

最后分享給大家我的工程鏈接:http://download.csdn.net/detail/yang_xian521/4421537



OpenCV學習筆記(五十四)——概述FaceRecognizer人臉識別類contrib?

在最新版的2.4.2中,文檔的更新也是一大亮點,refrence manual擴充了200多頁的內容,添加了contrib部分的文檔。contrib就是指OpenCV中新添加的模塊,但又不是很穩定,可以認為是一個雛形的部分。這次結合refman的閱讀,介紹一下FaceRecognizer這個人臉識別類,這個類也是2.4.2更新日志里著重強調過的更新,配套的文檔也是相當充實。這個類的基類也是Algorithm類,對于Algorithm類的簡單介紹,請參看我之前的blogOpenCV學習筆記(五十)——Algorithm類介紹(core),這個類內的接口函數也是異常簡單,人臉識別的任務也就是兩大部分,訓練和預測,分別對應著train函數和predict函數,還有對應的數據加載保存函數save和load。不過它當然還可以調用其基類Algorithm的函數。特別說明的是,人臉識別中預測的參數也是可以調節的,但這里只給出了train和predict函數,為啥沒有setparameter的函數呢,那是因為各中人臉識別方法的參數并不相同,要通過Algorithm的get和set函數實時的調整~~v5啊!

先來說說訓練的過程,train函數的兩個參數也很簡單,訓練的圖像組vector<Mat>和對應的標簽組vector<int>,這個label標簽只需保證同一個人的標簽相同即可,不需要保證圖像的按標簽順序輸入,方便極了。對于預測,有兩種調用,其中的參數有測試圖像、返回的標簽值和測試樣本和標簽樣本的相似性返回的標簽值為-1,說明測試樣本在訓練集中無對應或距離較遠。這里用個FisherFace作為示例說明一下如何訓練和預測:

[cpp] view plain copy
  • vector<Mat>?images;??
  • vector<int>?labels;??
  • //?images?for?first?person??
  • images.push_back(imread("person0/0.jpg",?CV_LOAD_IMAGE_GRAYSCALE));??
  • labels.push_back(0);??
  • images.push_back(imread("person0/1.jpg",?CV_LOAD_IMAGE_GRAYSCALE));??
  • labels.push_back(0);??
  • //?images?for?second?person??
  • images.push_back(imread("person1/0.jpg",?CV_LOAD_IMAGE_GRAYSCALE));??
  • labels.push_back(1);??
  • images.push_back(imread("person1/1.jpg",?CV_LOAD_IMAGE_GRAYSCALE));??
  • labels.push_back(1);??
  • ??
  • Ptr<FaceRecognizer>?model?=?createFisherFaceRecognizer();??
  • model->train(images,?labels);??
  • ??
  • Mat?img?=?imread("person1/2.jpg",?CV_LOAD_IMAGE_GRAYSCALE);??
  • int?predicted?=?model->predict(img);??

  • 當然我們也不需要每次使用都進行一次訓練,可以把訓練好的模型通過save函數保存成一個文件,下次使用的時候只需load即可

    目前支持的3種人臉識別的方案:特征臉EigenFace、Fisher臉FisherFace、LBP直方圖LBPHFace。分別調用函數createEigenFaceRecognizer、createFisherFaceRecognizer、createLBPHFaceRecognizer建立模型

    對于EigenFace兩個輸入參數,分別為PCA主成分的維數num_components和預測時的閾值threshold,主成分這里沒有一個選取的準則,要根據輸入數據的大小而決定,通常認為80維主成分是足夠的。除了這兩個輸入參數外,還有eigenvalues和eigenvectors分別代表特征值和特征向量,mean參數為訓練樣本的平均值,projections為訓練數據的預測值,labels為預測時的閾值。

    對于FisherFace,和EigenFace非常相似,也有num_componentsthreshold兩個參數和其他5個參數,FisherFace的降維是LDA得到的。默認值為c-1,如果設置的初始值不在(0,c-1]的范圍內,會自動設定為c-1。

    特別需要強調的是,EigenFace和FisherFace的訓練圖像和測試圖像都必須是灰度圖,而且是經過歸一化裁剪過的

    對于LBPHFace,我想不用過多介紹,LBP簡單和效果是大家都很喜歡的,參數包括半徑radius,鄰域大小即采樣點個數neighbors,x和y方向的單元格數目grid_x,grid_y,還有兩個參數histograms為訓練數據得到的直方圖,labels為直方圖對應的標簽。這個方法也要求訓練和測試的圖像是灰度圖

    接下來應該結合文檔進一步研究一下這個人臉識別類。我之前大量的人臉實驗都是在matlab下進行的,有了這個利器,我感覺會有越來越多的學生做老師和老板布置的project會選擇用OpenCV,而不是Matlab。希望我們都愛的OpenCV越來越好,越來越強大。歡迎交流



    OpenCV學習筆記(五十五)——用OpenCV做人臉識別和性別識別contrib

    人臉識別的故事說也說不完,調研的事還是交給大家吧。這里說的是用OpenCV做人臉識別。

    因為是真正的人臉識別,不是搞笑娛樂的東西,所以數據庫一定要強大的,推薦個網站http://www.face-rec.org/databases/。這里有最全的人臉庫的概述,希望大家能找到自己需要的人臉庫(PS:我現在特別需要一個3d的人臉庫,不知道哪位大俠知道如何free獲取,或者愿意共享給我那更是極好的了,先謝過咯)。這里簡單介紹兩個庫,ORL和Yale,ORL是一個輕量級的庫,Yale更為復雜,但并不是免費的。

    數據的準備:在我們程序里需要讀取圖像和對應的標簽,這里采用CSV文件,是一種簡單的數據交互格式,在我們最常用的Excel里就支持這種格式。這種格式每條信息占一行。信息格式為:文件名;標簽,例如C:/ORL/image.jpg;0。只要創建了一個CSV文件和對應的圖像,你就可以對任何一個數據庫進行訓練了。當然,這個CSV文件并不一定要自己手動的創建,也可以Python腳本自己生成自己需要的CSV文件,對應的腳本為\modules\contrib\doc\facerec\src\create_csv.py,唉,誰讓咱對這個腳本不熟悉,只能偷懶了,直接調\modules\contrib\doc\facerec\etc\at.txt或者\samples\cpp\facerec_at_t.txt。這個txt對應的是ORL的數據庫,其中的路徑就按照其改一下就好了。

    至于人臉識別的具體實現,我已經在blogOpenCV學習筆記(五十四)——概述FaceRecognizer人臉識別類contrib提到了如何實現。\modules\contrib\doc\facerec\src很多很好的示例,我這里就不上傳代碼了。

    最后再說一下人臉的標定。因為對Python也不是太熟悉,只給大家一個腳本文件吧,是\modules\contrib\doc\facerec\src\crop_face.py,通過這個腳本可以制作自己需要的人臉圖片大小。

    性別識別和視頻中的識別在對應的demo里都有介紹,我這里就不詳細說了,因為性別識別無非就是把訓練樣本的標簽只有兩類:男性和女性。需要說明的是,EigenFace是基于PCA的,是一種非監督的模型,不太適合性別識別的任務,這里的demo用的是FisherFace。對于視頻的人臉識別,無非就是添加了個VideoCapture和一個人臉檢測的CascadeClassifier。

    關于訓練的模型的保存和調用,就是用save和load函數,好簡單的,就不介紹了吧。

    最后說一下偽彩色圖的這個函數applyColorMap,其中colorMap參數是用來選擇偽彩色圖的樣式。因為人眼對顏色的敏感的程度要比對亮度的敏感程度要高,所以用偽彩色圖 的對比效果要更好。這才醫學圖像處理中用的比較多,以前的B超現在都用彩超了,價格竟然要貴好多,其實就是一個偽彩色處理罷了,醫院真黑啊!!




    from: http://blog.csdn.net/yang_xian521/article/category/910716

    總結

    以上是生活随笔為你收集整理的OpenCV学习笔记(五十一)——imge stitching图像拼接stitching OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。 OpenCV学习笔记(五的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 欧美日韩三区 | 国产精品无码一区二区三区在线看 | 久久影院午夜理论片无码 | 中文字幕一区二区三区手机版 | 成人激情小说网站 | 久久人人爽人人人人片 | 岛国精品资源网站 | 欧洲成人精品 | 91黄色片 | 日韩欧美久久精品 | 中文无码一区二区三区在线观看 | 黄色国产网站 | 麻豆黄色网址 | 老妇free性videosxx | 国产又粗又长又黄的视频 | 五月天婷婷在线观看 | 中文字幕第31页 | 国产黄色一级 | 在线永久看片免费的视频 | 国产精品永久免费观看 | 人妻va精品va欧美va | 又黄又爽视频 | 少妇精品视频一区二区 | 国产一级片中文字幕 | 国产又粗又黄视频 | 亚洲xxxx天美 | 日韩有码中文字幕在线 | 日本福利一区二区三区 | 99热这里是精品 | 日韩视频免费在线 | 亚洲色图19p| 综合五月婷| 中文字幕第31页 | 肉体粗喘娇吟国产91 | julia一区二区三区在线观看 | 亚洲奶汁xxxx哺乳期 | 欧美18—19性高清hd4k | 91亚洲国产成人精品一区二区三 | 国产精品电影一区 | 爱爱二区 | 日本午夜激情视频 | 一区二区激情 | 婷婷久久综合 | 天天狠天天干 | 久久免费看少妇高潮v片特黄 | 亚洲av无码一区二区三区在线 | 一本不卡 | 国模无码国产精品视频 | 97久久人人 | 久久艹这里只有精品 | 国产精品自拍网站 | 极品久久久久 | 欧美激情伊人 | 大色综合 | 日韩欧美毛片 | 久久在现 | 少妇又色又爽又黄的视频 | 二区三区在线观看 | 成人精品免费在线观看 | 日本理论片午伦夜理片在线观看 | 爱福利视频一区 | 亚洲国产视频在线观看 | 老熟女毛茸茸 | 国产区视频在线观看 | 午夜av在线免费观看 | 成人无码av片在线观看 | 女人扒开腿让男人捅爽 | 国产不卡在线观看 | 亚洲一区不卡 | av作品在线| 麻豆传媒视频入口 | 偷偷色噜狠狠狠狠的777米奇 | 久久精品h | 91精品久久久久久久久中文字幕 | 欧美国产精品一区二区三区 | 狠狠综合 | 91精品国产成人观看 | 秋霞电影网一区二区 | 女人私密又肥又大 | 黄视频免费在线观看 | 18成人免费观看视频 | 亚洲网站在线观看 | 69人妻精品久久无人专区 | 中文在线a√在线8 | 中文字幕av免费 | 色在线看 | 亚洲一区二区不卡在线观看 | 天天艹天天操 | 久久亚洲伊人 | 日韩中文字幕一区二区三区四区 | 河北彩花av在线播放 | 深爱激情av | wwwxx在线观看 | 亚洲第一黄网 | 亚洲成人日韩在线 | 亚洲一区二区精品 | 污污视频在线免费看 | www.youjizz.com日本 | 国产精品呻吟久久 |