特徵提取演算法
① 求matlab彩色圖片的顏色特徵提取演算法的代碼,和紋理特徵提取的代碼。傳統方法即可。
其實學數字圖像處理,關鍵的不是源代碼(和一般編程還是有區別的,這個是經驗之談,其實一般博導未必會編程,但是你和他說說你的方法,他一般都能切中要害),而是你能理解基於概念及適用場所。
基於顏色、紋理、形狀都屬於低層特徵,這些你理解就夠了,關鍵是對你的課題適合哪種方法來映射到高層語義上面,例如:識別物體輪廓,那可能形狀就比較適合等。
我之所以寫上面那段話,主要是我感覺你索取代碼也不說明具體要求,也就是方向不明確。
如今顏色特徵提取演算法有很多,諸如顏色直方圖、顏色矩、顏色集、顏色聚合向量、顏色相關圖等,既然你沒說,我就給個IEEE CSVT 2001的一篇關於顏色直方圖法的論文(源碼版權歸作者所有):
function colorhist = colorhist(rgb)
% CBIR_colorhist() --- color histogram calculation
% input: MxNx3 image data, in RGB
% output: 1x256 colorhistogram == (HxSxV = 16x4x4)
% as the MPEG-7 generic color histogram descriptor
% [Ref] Manjunath, B.S.; Ohm, J.-R.; Vasudevan, V.V.; Yamada, A., "Color and texture descriptors"
% IEEE Trans. CSVT, Volume: 11 Issue: 6 , Page(s): 703 -715, June 2001 (section III.B)
% check input
if size(rgb,3)~=3
error('3 components is needed for histogram');
end
% globals
H_BITS = 4; S_BITS = 2; V_BITS = 2;
%rgb2hsv可用rgb2hsi代替,見你以前的提問。
hsv = uint8(255*rgb2hsv(rgb));
imgsize = size(hsv);
% get rid of irrelevant boundaries
i0=round(0.05*imgsize(1)); i1=round(0.95*imgsize(1));
j0=round(0.05*imgsize(2)); j1=round(0.95*imgsize(2));
hsv = hsv(i0:i1, j0:j1, :);
% histogram
for i = 1 : 2^H_BITS
for j = 1 : 2^S_BITS
for k = 1 : 2^V_BITS
colorhist(i,j,k) = sum(sum( ...
bitshift(hsv(:,:,1),-(8-H_BITS))==i-1 &...
bitshift(hsv(:,:,2),-(8-S_BITS))==j-1 &...
bitshift(hsv(:,:,3),-(8-V_BITS))==k-1 ));
end
end
end
colorhist = reshape(colorhist, 1, 2^(H_BITS+S_BITS+V_BITS));
% normalize
colorhist = colorhist/sum(colorhist);
%基於紋理特徵提取灰度共生矩陣用於紋理判斷
% Calculates cooccurrence matrix
% for a given direction and distance
%
% out = cooccurrence (input, dir, dist, symmetric);
%
% INPUT:
% input: input matrix of any size
%
% dir: direction of evaluation
% "dir" value Angle
% 0 0
% 1 -45
% 2 -90
% 3 -135
% 4 -180
% 5 +135
% 6 +90
% 7 +45
%
% dist: distance between pixels
%
% symmetric: 1 for symmetric version
% 0 for non-symmetric version
%
% eg: out = cooccurrence (input, 0, 1, 1);
% Author: Baran Aydogan (15.07.2006)
% RGI, Tampere University of Technology
% [email protected]
function out = cooccurrence (input, dir, dist, symmetric);
input = round(input);
[r c] = size(input);
min_intensity = min(min(input));
max_intensity = max(max(input));
out = zeros(max_intensity-min_intensity+1);
if (dir == 0)
dir_x = 0; dir_y = 1;
end
if (dir == 1)
dir_x = 1; dir_y = 1;
end
if (dir == 2)
dir_x = 1; dir_y = 0;
end
if (dir == 3)
dir_x = 1; dir_y = -1;
end
if (dir == 4)
dir_x = 0; dir_y = -1;
end
if (dir == 5)
dir_x = -1; dir_y = -1;
end
if (dir == 6)
dir_x = -1; dir_y = 0;
end
if (dir == 7)
dir_x = -1; dir_y = 1;
end
dir_x = dir_x*dist;
dir_y = dir_y*dist;
out_ind_x = 0;
out_ind_y = 0;
for intensity1 = min_intensity:max_intensity
out_ind_x = out_ind_x + 1;
out_ind_y = 0;
[ind_x1 ind_y1] = find (input == intensity1);
ind_x1 = ind_x1 + dir_x;
ind_y1 = ind_y1 + dir_y;
for intensity2 = min_intensity:max_intensity
out_ind_y = out_ind_y + 1;
[ind_x2 ind_y2] = find (input == intensity2);
count = 0;
for i = 1:size(ind_x1,1)
for j = 1:size(ind_x2,1)
if ( (ind_x1(i) == ind_x2(j)) && (ind_y1(i) == ind_y2(j)) )
count = count + 1;
end
end
end
out(out_ind_x, out_ind_y) = count;
end
end
if (symmetric)
if (dir < 4)
dir = dir + 4;
else
dir = mod(dir,4);
end
out = out + cooccurrence (input, dir, dist, 0);
end
② 關於特徵提取的GLOH演算法
那是我在塵世上被賜予的時光。
而羅馬人可是最可怕的敵人。
既然這規矩將你與另一人
飄浮在中距離外,成為
他們還會回來,他們還會
群星熠熠哈哈
③ 特徵提取的特徵
有時,假如特徵提取需要許多的計算時間,而可以使用的時間有限制,一個高層次演算法可以用來控制特徵提取階層,這樣僅圖像的部分被用來尋找特徵。
由於許多計算機圖像演算法使用特徵提取作為其初級計算步驟,因此有大量特徵提取演算法被發展,其提取的特徵各種各樣,它們的計算復雜性和可重復性也非常不同。
④ 特徵提取演算法有哪些
圖像的特徵可分為兩個層次,包括低層視覺特徵,和高級語義特徵。低層視覺特徵包括紋理、顏色、形狀三方面。語義特徵是事物與事物之間的關系。紋理特徵提取演算法有:灰度共生矩陣法,傅里葉功率譜法顏色特徵提取演算法有:直方圖法,累計直方圖法,顏色聚類法等等。形狀特徵提取演算法有:空間矩特徵等等高級語義提取:語義網路、數理邏輯、框架等方法
⑤ opencv有哪些新的特徵提取演算法
那要看你需要什麼了,opencv是處理圖像的 裡面封裝了很多圖像處理函數 比如load一副圖像 轉變一副圖像(彩色的轉成黑白的,也就是BGR2GRAY) save一副圖像 對一副圖像去噪音 邊緣檢測一副圖像 閾值分割一副圖像 ==吧 處理視
⑥ 圖像處理特徵提取
你這個問題至少應該說明:
- 你要處理什麼圖像, 是靜態的單幀圖呢,還是動態的視頻?
- 處理的目的是什麼,是做圖像測量,還是對象識別?或者是運動檢測?
- 為了實現目標,需要提取的特徵,以及各個特徵的精度要求。
就象tokushimajp說的,圖像特徵太多了,你最好先找本基本的數字圖像處理的書,把基本概念看明白了再提問,這樣別人也好幫你解決問題。推薦你看北理工賈雲得的機器視覺這本書,網上很好下載。
論文和程序實例我都有,不過看你這樣慌不擇路的,給你也是害了你。
⑦ 對一張圖片進行特徵提取的具體演算法和程序。越具體越好。感謝,例如算出圖像的形狀長寬高之類的。
對一張圖片進行特徵提取的具體演算法和程序,越具體越好,感謝例如算出圖像的形狀,長寬之類的,我覺得對圖片特徵提取的體術法並沒有什麼具體演算法,因為每個相機照出來的圖片,它的放大縮小都是不一樣的,不可能從一個圖片算出一個圖像的長寬高,只能夠算出一個大概的長寬高,如果要算出非常准確的茶膏,只能用一些紅外測距儀,還有某些特定的儀器才能構測量出,一些建築物的長寬高不能夠從一個圖片上面去算出一個建築物的長寬高的是根本沒法算出來的。
⑧ 集和幾種常用的特徵提取方法,常用的分類演算法
競爭性自適應重加權演算法(CARS)是通過自適應重加權采樣(ARS)技術選擇出PLS模型中回歸系數絕對值大的波長點,去掉權重小的波長點,利用交互驗證選出RMSECV指最低的子集,可有效尋出最優變數組合。
⑨ 圖象處理顏色特徵提取的演算法和程序
參考MATLAB圖像處理工具箱