2017-12-19 13 views
0

다음은 액체에서 움직이는 구로 인해 발생하는 거품을 보여주는 실험 이미지입니다.MATLAB을 사용하여 이미지에서 버블 영역을 얻는 방법은 무엇입니까?

Example cavity Another cavity example

는 이제 매트랩 사용하여 모든 이미지에서 버블의 영역을 싶어. 내 마음에 제일 먼저 오는 것은 가장자리 감지입니다. 그래서 다음 코드를 사용하여 시도 :

A = imread('D:\1.jpg'); 
BW1 = edge(A,'sobel'); 
figure, imshow(BW1) 

는 화상 표시로, 결과는 (아래)의 요구 사항을 만족하지 않는 수동 자른 된 화상의 구멍 가장자리에 도착. 또한, 나는 아직도 거품의 영역을 얻는 방법을 모른다.

result

그래서, 누군가는 어떻게해야 말해 줄 수?

답변

0

배경 빼기를 사용하고 간단한 세분화를 시도해야한다고 생각합니다. 당신은 거품의 영역을 얻을 수 regionprops을 사용할 수 있습니다 내가 느끼는

https://www.mathworks.com/help/images/ref/regionprops.html

를 꽤 잘 작동해야처럼. 깨끗한 세분화를 얻는 데 어려움이 있다면 실험 설정을 향상시켜 가능한 한 어둡게 배경을 선택하고 빛의 확산을 활용하기 위해 일부 측면 조명을 사용하여 배경과 관련하여 거품의 대비를 높일 수 있습니다. 거품.

마지막으로 분할을 사용하면 거품이 탱크 정확한 캐비티 가장자리를 얻기의 문제에 관해서는

0

내에 국한 알고 있기 때문에, 컴퓨터 비전 시스템 도구 상자는있다 관심 (ROI)의 영역에서 수행되어야한다 vision.ForegroundDetector 오브젝트는 Stauffer와 Grimson의 GMM 백그라운드 뺄셈의 변형을 구현합니다. 구현은 여러 코어를 활용하여 매우 빠릅니다. 이 예의 how to use background subtraction을 확인하십시오.

버블 영역을 찾는 문제는 bwarea 명령을 사용하십시오. https://www.mathworks.com/help/images/ref/bwarea.html이면 이미지의 모든 흰색 픽셀을 합산합니다.

0

이 버블 영역을 계산하는 데 백그라운드 뺄셈이 가장 효율적인 방법이라고 생각합니다. 나중에 다른 영역을 필터링하기 위해 개폐 기술을 사용해야 할 수도 있습니다 (imopen imclose) : https://uk.mathworks.com/help/images/ref/imopen.html에서 확인한 후 면적을 계산하기 위해 bwarea를 적용 할 수 있습니다. 또한 impixelinfo 명령을 사용하여 거품과 다른 영역의 강도 수준을 비교할 수 있으므로 거품을 추출하는 임계 값 이미지를 사용할 수 있습니다. 모든 이미지에 대해 동일한 임계 값을 가진 경우에만 작동합니다. 또한, 이미지에 완전히 의존하는 이러한 모든 기술을 결합하여 더 나은 결과를 얻을 수 있습니다.

거품 기반 영역 영역을 추출하는 데에도 다른 모양 기반 기법을 사용할 수 있습니다.