Отображение большого круга на меньший в Matlab - PullRequest
0 голосов
/ 10 июля 2019

Я использую приведенный ниже код, чтобы сначала указать сетку [X, Y], которая представляет сектор круга, определенный углом (sector_angle) и радиусом круга (sector_h), и, во-вторых, извлечь этот сектор из изображения RGB (img) с размером = [2 * сектор_h, 2 * сектор_h, 3].

Теперь я ищу способ сопоставить большой круговой сектор с меньшим сектором, определенным посредством sector_angle_2

[X,Y] = meshgrid(0:2*sector_h-1,0:2*sector_h-1);                          
Y = flip(Y,1); X = X-sector_h; Y = Y-sector_h;                            
D = sqrt(X.^2 + Y.^2);
theta = acosd(X./D);
tmp = theta; tmp = tmp+180; tmp(Y>=0)= 0;
tmp = flip(tmp,2); theta(Y<0)=0; theta = theta+tmp;
idx = D > sector_h | theta<90-sector_angle | theta>90+sector_angle;
R = img(:,:,1);   G = img(:,:,2);   B = img(:,:,3);                    
R(idx) = 0;       G(idx) = 0;       B(idx) = 0;
img(:,:,1) = R;   img(:,:,2) = G;   img(:,:,3) = B;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...