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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

人眼中亮斑的检测、定位和去除

發布時間:2025/4/16 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 人眼中亮斑的检测、定位和去除 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在紅外線照射人眼時,會產生亮斑,亮斑的像素比其他的像素要高,因此我們選擇一個好的閾值對圖像進行分割,

但是怎么選擇合適的閾值?


這里我們可以用迭代閾值的辦法對圖像進行分割,但是到合適的閾值時,怎么評價閾值的好壞,

需要一個合適的評價的條件,確定閾值。。

這個評價的條件的確定:

首先我們假設閾值像素值是圖像最大的灰度值,因為亮斑區域的像素很高,一般情況下,亮斑中像素高的部分可以被分割,但是這時分割的區域很小,不是很合適,閾值像素降低進行分割,這樣亮斑區域的面積增加,于此同時,人眼圖像中的其他有高像素的區域可能也被分割進去,

這里我們定義評價條件:R(比率)=亮斑面積/(分割的全部面積--亮斑面積),,因為當閾值降低時,亮斑區域的面積增加,根據常識我們可以知道,亮斑的像素值是從中心到邊界是遞減的過程,假設在取一閾值時,亮斑的像素達到最大,閾值在繼續減小時,不是亮斑的區域面積會增加,這時評價條件比率這時會降低,這時我們取比率最大時的像素值為圖像的分割閾值,,,


在實際的圖像中,因為亮斑的區域一般在人眼角膜附近,為了減小搜索時間,我們可以對圖像進行剪切,只處理我們想要的區域,這樣處理會快些。


至于亮斑的面積,我們可以使用matlab中的輪廓函數產生。


相應的代碼:

% This function locates the corneal reflection within a window using an % adaptive thresholding technique.% Input: % I = input image % [cx cy] = window center % window_width = width of window (must be odd) % % Output: % [x,y] = corneal reflection coordinate % ar = approximate radius of the corneal reflectionif (mod(window_width,2)~=1)fprintf(1,'Window_width is not odd! It is set at %d!',window_width); end;[height width] = size(I); i = 2; score(1) = 0; x = []; y = []; ar = [];r = floor((window_width-1)/2); sx = max(round(cx-r),1); ex = min(round(cx+r),width); sy = max(round(cy-r),1); ey = min(round(cy+r),height); Iw = I(sy:ey, sx:ex);for threshold=max(max(I)):-1:1Iwt = Iw>=threshold;[labeled,numObjects] = bwlabel(Iwt,8);if numObjects < 2continue;endprops = regionprops(labeled,'Area','Centroid','EquivDiameter');areas = [props.Area];max_area_index = find(areas == max(max(areas)));score(i) = areas(max_area_index(1))/(sum(areas)-areas(max_area_index(1)));if score(i) - score(i-1) < 0x = props(max_area_index(1)).Centroid(1);y = props(max_area_index(1)).Centroid(2);ar = props(max_area_index(1)).EquivDiameter / 2;break;endi = i+1; endif isempty(x)fprintf(1,'Sorry, no corneal reflection was found in this frame.\n');x = 0;y = 0;ar = 0;return; endx = x+sx-1; y = y+sy-1;

總結

以上是生活随笔為你收集整理的人眼中亮斑的检测、定位和去除的全部內容,希望文章能夠幫你解決所遇到的問題。

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