1
A
回答
2
基於衆所周知的圖像處理技術,您可以編寫自己的處理工具:
img = imread('Mlj6r.jpg'); % read the image
imgGray = rgb2gray(img); % convert to grayscale
sigma = 1;
imgGray = imgaussfilt(imgGray, sigma); % filter the image (we will take derivatives, which are sensitive to noise)
imshow(imgGray) % show the image
[gx, gy] = gradient(double(imgGray)); % take the first derivative
[gxx, gxy] = gradient(gx); % take the second derivatives
[gxy, gyy] = gradient(gy); % take the second derivatives
k = 0.04; %0.04-0.15 (see wikipedia)
blob = (gxx.*gyy - gxy.*gxy - k*(gxx + gyy).^2); % Harris corner detector (high second derivatives in two perpendicular directions)
blob = blob .* (gxx < 0 & gyy < 0); % select the top of the corner (i.e. positive second derivative)
figure
imshow(blob) % show the blobs
blobThresshold = 1;
circles = imregionalmax(blob) & blob > blobThresshold; % find local maxima and apply a thresshold
figure
imshow(imgGray) % show the original image
hold on
[X, Y] = find(circles); % find the position of the circles
plot(Y, X, 'w.'); % plot the circle positions on top of the original figure
nCircles = length(X)
此代碼計數2710圈,這也許是一個輕微的(但不是那麼糟糕)高估。
下圖顯示了圓圈位置以白點表示的原始圖像。在對象的邊界處進行了一些錯誤的檢測。您可以嘗試對常量sigma
,k
和blobThresshold
進行一些調整以獲得更好的結果。特別是,更高的k
可能是有益的。有關Harris角點檢測器的更多信息,請參見wikipedia。
相關問題
- 1. 計算圖像中對象的數量
- 2. 計算圖像中的對象
- 3. 如何計算要用於圓形的SVG圖像的區域
- 4. Matlab圖像分割和圓形識別
- 5. 使用MATLAB計算並平均圖像中的某些像素
- 6. 如何使用對象創建圓形圖像
- 7. Matlab - 圖像動量計算
- 8. 在matlab中計算圖像的log10
- 9. 如何使用python來計算圖像中的對象?
- 10. 圓形圖像?
- 11. Matlab的:計算兩個圖形
- 12. 如何使用MATLAB計算視頻中的對象數
- 13. 如何在Matlab中計算圖像中匹配對象的數量
- 14. Android的圓形邊框圓形圖像
- 15. 如何使用MATLAB計算圖像中的人數?
- 16. 使用matlab檢測並計算圖像中的人數
- 17. 使用javascript的圓形圖像流
- 18. 使imagemagick中的圖像圓形邊框
- 19. 如何免除Matlab繪圖極限計算中的對象
- 20. Matlab中的圓形掩模
- 21. 計算爲圓心座標圖像
- 22. 用asp.net圓形圖像
- 23. Css圓形圖像
- 24. 距離圖像到matlab中的對象
- 25. 計算在3D中以圓形運動移動的對象的位置
- 26. 如果我使用圓形圖像,imageView中不顯示圖像
- 27. 用圓角矩形計算外線
- 28. 在MATLAB中使用RGB和灰度圖像計算MSE - 圖像處理
- 29. 檢測圖像中的圓形圖案
- 30. ios中的圓形圖像視圖