gpt4 book ai didi

matlab - 找到阴影检测的最大轮廓

转载 作者:太空宇宙 更新时间:2023-11-03 22:23:48 25 4
gpt4 key购买 nike

我在图像处理中遇到了这个问题,我找不到在这种情况下表现良好的算法。它很容易理解,但我不知道如何在 ‍‍OpenCV 中实现它或在 Matlab 中,因此其中之一中的任何算法或函数(MATLAB 或 opencv) 都是有帮助的。

1 。假设 image 和场景背景如下所示

enter image description here

2 。我们对 image 应用边缘检测器,我的 current image 将如下图所示。

enter image description here

现在我的问题是我们如何在edge图像中找到最大的轮廓或区域

enter image description here


如果要原图原图是 enter image description here

在matlab中你可以通过下面的代码得到边缘图像。

clc
clear

img = imread('1.png'); % read Image
gray = rgb2gray(img); % Convert RGB to gray-scale
edgeImage = edge(gray,'canny',0.09); % apply canny to gray-scale image
imshow(edgeImage) % Display result in figure(MATLAB)

在 OpenCV 中你可以使用下面的代码

#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("1.png");

Mat gray;
cvtColor(img, //BGR form image
gray, //Mat for gray(destination)
CV_BGR2GRAY); //type of transform(in here BGR->GRay)

Mat edgeImage;
Canny(gray, //Input Array
edgeImage, //Output Array
40, // Lower threshold
120); //Upper threshold

namedWindow("Edge-Image"); //create a window for display image
imshow("Edge-Image",edgeImage); //Display edgeImage in window that in before line create
waitKey(0); //stick display window and wait for any key

return 0;

}

最佳答案

这是在 Matlab 中使用 imdilate 来闭合轮廓并使用 regionprops 来获取闭合对象区域的解决方案:

% Your code to start
img = imread('Image.png'); % read Image
gray = rgb2gray(img); % Convert RGB to gray-scale
edgeImage = edge(gray,'canny',0.09); % apply canny to gray-scale image

% First dilate to close contours
BW = imdilate(edgeImage, strel('disk',4,8));

% Then find the regions
R = regionprops(~BW, {'Area', 'PixelIdxList'});

% Find the second biggest region (the biggest is the background)
[~, I] = sort([R(:).Area], 'descend');
Mask = zeros(size(img));
Mask(R(I(2)).PixelIdxList) = 1;

% Display
clf
imshow(Mask)

结果是:

The result: Mask

最好的,

关于matlab - 找到阴影检测的最大轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45446906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com