Tôi muốn đọc trong một hình ảnh - một hình ảnh của một vòng tròn và tính toán trường vector gradient của hình ảnh đó (ví dụ: vectơ chỉ ra đồng nhất và bình thường với hình tròn). Logic của tôi là không cho tôi một chút, nhưng tôi có:Tính toán trường vector gradient của hình ảnh
clear all;
im = im2double(imread('littlecircle.png'));
im = double(im);
[nr,nc]=size(im);
[dx,dy] = gradient(im);
[x y] = meshgrid(1:nc,1:nr);
u = x;
v = y;
quiver(x,y,u,v)
nếu tôi chỉ đơn giản là làm việc trên, tôi nhận được một trường vector, nhưng nó chỉ đơn giản là gradient của một lưới trống (tức là chỉ là một trường vector của gradient y = x). Điều tôi thực sự muốn là sử dụng
[dx,dy] = gradient(im);
để phát hiện các cạnh của hình tròn trong hình ảnh, sau đó tính toán trường vector gradient do vòng tròn trong hình ảnh. rõ ràng, việc chỉ định u = x và v = y sẽ chỉ cho tôi trường vectơ của đường thẳng - vì vậy về cơ bản, tôi muốn nhúng độ dốc của hình ảnh vào vectơ u và v. Làm cách nào để làm điều này?
Bạn có thể gửi littlecircle.png? –