Matlab 원 인식
그 중 이번 기사는 엔의 인식 방법에 대해 정리해 나가고 싶다.
1. 이미지(페인트)에서 읽기
2. 이미지 파일을 읽고 인식
3. 실시간으로 이미지 처리
이 3단계로 진행해 간다. (우선, 1만 투고. 2,3은 시간에 여유가 있으면 투고해 가고 싶습니다)
참고 기사 Acquisition Using the Image Acquisition Tool(영어판)
사용환경
1. 이미지(페인트)에서 읽기
아래 이미지의 원을 인식합니다. 타원도 포함하고 있기 때문에 어디까지가 원으로 인식되는지의 테스트도 포함해 봅니다. (fig1.png)
1.1 이미지 불러오기(+전처리)
matlab rgb=imread(fig1.png);
본래는 이 단계에서 컬러 화상에서 그레이스케일로의 변환➀이나 그레이스케일로부터 2치화의 바이너리 이미지를 생성➁하고, 화상 처리를 진행해 나가는 것이 계산량은 적어지지만, 이번은 변환은 생략한다. (변환하는 함수는 다음과 같다)
matlabgray=rgb2gray(rgb) % ➀ カラー→グレー
BW=imbinarize(gray) % ➁ グレー→2値化
1.2엔 탐색
허프 변환을 사용하는 방법으로 imfindcircles 함수 사용
참조 기사 imfindcircles 함수
사용 예는 다음과 같습니다.
matlab [centers, radii] = imfindcircles(A, [Rmin Rmax])
(입력 인수)
(1) A <- 탐색하려는 이미지 (이미지) 입력
(2)[Rmin Rmax]
주의) 너무 범위를 넓게 취하면 정밀도가 떨어지므로
・Rmax < 3×Rmin
・・(Rmax - Rmin)<100
에 맞도록 범위를 설정합니다. (단, 본 기사에서는 소스 코드의 간략화를 위해 분할하지 않고 쓰고 있다)
만약 어려운 것 같다면. 이하와 같이 범위를 분할하는 것이 좋다.
matlab [CENTERS1, RADII1, METRIC1] = IMFINDCIRCLES(A, [20 60]);
[CENTERS2, RADII2, METRIC2] = IMFINDCIRCLES(A, [61 100]);
(출력 인수)
(1) centers <- 원의 중심 좌표
(2) radii<- 추정 반경
1.3 원 만들기
viscircles 함수를 사용하여 위에서 지정한 원을 작성합니다.
matlab viscircles(centers, radii,'Color','g')
옵션으로 'Color'를 더하면 원의 색을 변경할 수 있으며 (설정하지 않으면 적색) b에서 청색, g에서 녹색으로 지정할 수 있습니다.
1.4 요약
전체 코드를 정리하면 아래와 같이 되어 아래 그림과 같이 녹색으로 둘러싸인 3개의 원을 인식할 수 있었다.
matlab%コードまとめ
%画像を読み込む
rgb=imread(fig1.png);
[centers, radii] = imfindcircles(rgb, [10 100])
imshow(rgb);
hold on;
viscircles(centers, radii,'Color','g')
위 그림과 같이 녹색으로 둘러싸인 원 3개를 인식할 수 있었다!
Reference
이 문제에 관하여(Matlab 원 인식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/crinoid/items/9b6c81ff7357aa1a4336
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
rgb=imread(fig1.png);
gray=rgb2gray(rgb) % ➀ カラー→グレー
BW=imbinarize(gray) % ➁ グレー→2値化
[centers, radii] = imfindcircles(A, [Rmin Rmax])
[CENTERS1, RADII1, METRIC1] = IMFINDCIRCLES(A, [20 60]);
[CENTERS2, RADII2, METRIC2] = IMFINDCIRCLES(A, [61 100]);
viscircles(centers, radii,'Color','g')
전체 코드를 정리하면 아래와 같이 되어 아래 그림과 같이 녹색으로 둘러싸인 3개의 원을 인식할 수 있었다.
matlab
%コードまとめ
%画像を読み込む
rgb=imread(fig1.png);
[centers, radii] = imfindcircles(rgb, [10 100])
imshow(rgb);
hold on;
viscircles(centers, radii,'Color','g')
위 그림과 같이 녹색으로 둘러싸인 원 3개를 인식할 수 있었다!
Reference
이 문제에 관하여(Matlab 원 인식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/crinoid/items/9b6c81ff7357aa1a4336텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)