그래서 이미지의 세로 가장자리를 측정하여 나중에 2D에서 3D로 변환 할 때의 심도있는 큐로 사용하고 싶습니다. A가가로 그라디언트 값을 계산하는 방법은 무엇입니까?
그램 (X ', Y')
̅ g(x,y) = 1/N ∑_((x',y')∈ Ω(x,y))〖g(x', y')〗
:
그래서 각 블록은 다음과 같은 수직 에지를 측정하는 수평 기울기 값을 계산해야한다 수행 화소 위치 (X ', Y')의 수평 기울기,
오메가 (X, Y)은
화소 위치의 nighborhood (X ', Y')이며, N은 화소의 수이다 오메가 (x, y). 그래서 여기
내가 MATLAB에 무슨 짓을 :
I = im2double(imread('landscape.jpg'));
% convert RGB to gray
gI = rgb2gray(I);
[nrow, ncol] = size(gI);
% divide the image into 4-by-4 blocks
gI = mat2tiles((gI),[4,4]);
N = 4*4; % block size
% For each block, compute the horizontal gradient
gI = reshape([gI{:}],4*4, []);
mask = fspecial('sobel');
g = imfilter(gI, mask);
g_bar = g./N;
g_bar = reshape(g_bar,nrow, ncol);
내 코드가 올바른 방법으로 방정식을 표현하면 내가 확실하지 않다 matlab에 새로운 해요.
정확하다고 생각되면 알려 주시기 바랍니다. 결과를 테스트하는 방법을 모르겠습니다.
제쳐두고, 나는''blockproc' (http://uk.mathworks.com/help/images/ref/blockproc.html)을 살펴 보길 권한다 - 아마도 그보다 더 좋고 (그리고 더 빠를 것이다) 모든 '모양새'- 저글링. – Notlikethat
Sidenote : 내 연구를 한번보세요. 박사 학위 논문은 2D에서 3D로 변환되었습니다. - http://scholar.google.ca/citations?user=5piX29gAAAAJ – rayryeng
@rayryeng, 감사합니다. – ABC2013