使用透視變換矯正扭曲的圖(opencv)矩形邊緣檢測(原生CoreImage框架下CIDetector)

使用透視變換矯正扭曲的圖(opencv)和矩形邊緣檢測(原生CoreImage框架下CIDetector)都是基于iOS版本

之前也找了很多都是vs啊将硝,android啊榜掌,運(yùn)用xcode的.mm混合編譯時出現(xiàn)一大堆崩潰問題娜氏,無奈跨平臺移植demo無果,只好搞原生iOS工程下的

運(yùn)用場景:手機(jī)拍照目標(biāo)文件往往有一個角度,或者目標(biāo)文件之外的物體衣吠,需要經(jīng)過處理后只要目標(biāo)文件,且正視無角度傾斜

主要意思就是手機(jī)拍照

攝像頭觀察一個矩形的圖片時往往只能得到一個扭曲的圖片:

原圖:(處理后的)


實際情況是攝像頭經(jīng)常從某個角度觀察圖片:(原始的未處理的)


方法一.使用opencv的透視變換把圖片矯正為正視的角度

大概過程:

1壤靶、通過灰度缚俏、模糊和二值化得到:


2、然后對查找圖片外包矩形輪廓贮乳,并查找角點得到:


3.通過梯形四個角點和外包矩形的四個頂點得到變換矩陣忧换,進(jìn)行投射變換,最后得到:


方法二.原生CoreImage框架下CIDetector進(jìn)行矩形邊緣檢測

這是iOS的一個原生api

coreImage framework 組成

apple 已經(jīng)幫我們把coreImage的處理分類好向拆,來看看它的結(jié)構(gòu):

主要分為三部分:

1)定義部分:CoreImage 何CoreImageDefines亚茬。見名思義,代表了CoreImage 這個框架和它的定義浓恳。

2)操作部分:

濾鏡(CIFliter):CIFilter 產(chǎn)生一個CIImage才写。典型的,接受一到多的圖片作為輸入奖蔓,經(jīng)過一些過濾操作赞草,產(chǎn)生指定輸出的圖片。

檢測(CIDetector):CIDetector 檢測處理圖片的特性吆鹤,如使用來檢測圖片中人臉的眼睛厨疙、嘴巴、等等疑务。(這里我們將用到這個CIDetector進(jìn)行矩形邊框的檢測沾凄,不僅僅局限于人臉的檢測)

特征(CIFeature):CIFeature 代表由?detector處理后產(chǎn)生的特征梗醇。

3)圖像部分:

畫布(CIContext):畫布類可被用與處理Quartz 2D 或者OpenGL∪鲶埃可以用它來關(guān)聯(lián)CoreImage類叙谨。如濾鏡、顏色等渲染處理保屯。

顏色(CIColor): ? 圖片的關(guān)聯(lián)與畫布手负、圖片像素顏色的處理。

向量(CIVector): 圖片的坐標(biāo)向量等幾何方法處理姑尺。

圖片(CIImage): 代表一個圖像竟终,可代表關(guān)聯(lián)后輸出的圖像。

iOS的人臉識別從iOS 5(2011)就有了切蟋,不過一直沒怎么被關(guān)注過统捶。人臉識別API允許開發(fā)者不僅可以檢測人臉,也可以檢測到面部的一些特殊屬性柄粹,比如說微笑或眨眼喘鸟。

人臉識別過程一般分為以下3個步驟:

1.首先建立人臉的面紋數(shù)據(jù)庫.可以通過照相機(jī)或攝像機(jī)采集人臉的面相圖片,將這些面相圖片生成面紋編碼保存到數(shù)據(jù)庫中.

2.獲取當(dāng)前人臉面相圖片.即通過照相機(jī)或攝像機(jī)采集人臉的面相圖片,將當(dāng)前的面相文件生成面紋編碼

3.用當(dāng)前的面紋編碼與數(shù)據(jù)庫中的面紋編碼進(jìn)行對比

在iOS5之后提供人臉識別的API,通過提供的CIDetector類可以進(jìn)行人臉特征識別,CIDetector是CoreImage框架中的一個特征識別濾鏡,CIDetector主要用于人臉特征識別.通過它還可以獲得眼睛和嘴的特征信息.但是CIDetector并不包括面紋編碼提取,面紋編碼處理還需要更為復(fù)雜的算法處理.也就是說使用CIDetector類可以找到一張圖片中的人臉,但這張臉是誰,CIDetector無法判斷,這需要有一個面紋數(shù)據(jù)庫,把當(dāng)前人臉提取面紋編碼然后與數(shù)據(jù)庫進(jìn)行對比.(openCV FACE.COM)

CIContext *context = [CIContext contextWithOptions:nil];

UIImage *imageInput = [_inputImageView image];

CIImage *image = [CIImage imageWithCGImage:imageInput.CGImage];

//設(shè)置識別參數(shù)

NSDictionary *param = [NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh

forKey:CIDetectorAccuracy];

//聲明一個CIDetector,并設(shè)定識別類型

CIDetector* faceDetector = [CIDetector detectorOfType:CIDetectorTypeFace

context:context options:param];

//取得識別結(jié)果

NSArray *detectResult = [faceDetector featuresInImage:image];

UIView *resultView = [[UIView alloc] initWithFrame:_inputImageView.frame];

[self.view addSubview:resultView];

for(CIFaceFeature* faceFeature in detectResult) {

//臉部

UIView* faceView = [[UIView alloc] initWithFrame:faceFeature.bounds];

faceView.layer.borderWidth =1;

faceView.layer.borderColor = [UIColor orangeColor].CGColor;

[resultView addSubview:faceView];

[faceView release];

//左眼

if(faceFeature.hasLeftEyePosition) {

}

//右眼

if(faceFeature.hasRightEyePosition) {

}

//嘴巴

if(faceFeature.hasMouthPosition) {

}

}

[resultView setTransform:CGAffineTransformMakeScale(1, -1)];

[resultView release];

也就是說驻右,你去銀行辦理銀行卡出銀行卡的機(jī)器(現(xiàn)在都是類似于ATM一樣的機(jī)器出卡迷守,不用在人工窗口進(jìn)行辦卡出卡了)對你進(jìn)行拍照,最后形成面紋數(shù)據(jù)庫從而永久保存旺入,一直到你over掉這個數(shù)據(jù)庫依然永久存在,這一點是多么的可怕凯力,辦卡且行且珍惜吧茵瘾。。咐鹤。拗秘。

這里只是進(jìn)行矩形邊框的識別,至于人臉的識別參見:

iOS之使用CoreImage進(jìn)行人臉識別

至于用那個方法讀者自己甄別

參考demo參見:

OpenCVAndCoreImage-CIDetector

鏈接: https://pan.baidu.com/s/1eSAixhg 密碼: jd7i

若是此demo幫助到了你歡迎大賞和start

更多資源學(xué)習(xí)交流群:群號:224110749

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末祈惶,一起剝皮案震驚了整個濱河市雕旨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捧请,老刑警劉巖凡涩,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異疹蛉,居然都是意外死亡活箕,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門可款,熙熙樓的掌柜王于貴愁眉苦臉地迎上來育韩,“玉大人克蚂,你說我怎么就攤上這事〗钐郑” “怎么了埃叭?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長悉罕。 經(jīng)常有香客問我赤屋,道長,這世上最難降的妖魔是什么蛮粮? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任益缎,我火速辦了婚禮,結(jié)果婚禮上然想,老公的妹妹穿的比我還像新娘莺奔。我一直安慰自己,他們只是感情好变泄,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布令哟。 她就那樣靜靜地躺著,像睡著了一般妨蛹。 火紅的嫁衣襯著肌膚如雪屏富。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天蛙卤,我揣著相機(jī)與錄音狠半,去河邊找鬼。 笑死颤难,一個胖子當(dāng)著我的面吹牛神年,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播行嗤,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼已日,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了栅屏?” 一聲冷哼從身側(cè)響起飘千,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎栈雳,沒想到半個月后护奈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡哥纫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年逆济,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡奖慌,死狀恐怖抛虫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情简僧,我是刑警寧澤建椰,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站岛马,受9級特大地震影響棉姐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜啦逆,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一伞矩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧夏志,春花似錦乃坤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瘦材,卻和暖如春厅须,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背食棕。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工朗和, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人簿晓。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓眶拉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親抢蚀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容