KR20160059452A - 이미지의 파티셔닝 - Google Patents

이미지의 파티셔닝 Download PDF

Info

Publication number
KR20160059452A
KR20160059452A KR1020150162070A KR20150162070A KR20160059452A KR 20160059452 A KR20160059452 A KR 20160059452A KR 1020150162070 A KR1020150162070 A KR 1020150162070A KR 20150162070 A KR20150162070 A KR 20150162070A KR 20160059452 A KR20160059452 A KR 20160059452A
Authority
KR
South Korea
Prior art keywords
image
pixel
pixels
polyline
closed
Prior art date
Application number
KR1020150162070A
Other languages
English (en)
Inventor
로라 페이띠외
아멜리 레나르
프레데릭 레첼터
Original Assignee
다솔 시스템므
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 다솔 시스템므 filed Critical 다솔 시스템므
Publication of KR20160059452A publication Critical patent/KR20160059452A/ko

Links

Images

Classifications

    • G06T7/0079
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/187Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20096Interactive definition of curve of interest

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법과 관련된다. 방법은 보더를 포함하는 이미지를 디스플레이하는 단계 (S10); 이미지 위에 곡선을 드로잉하는 단계 (S20); 이미지의 곡선 및 보더에 의해 범위가 정해진 모든 클로즈드 영역들을 컴퓨팅하는 단계로서, 각각의 클로즈드 영역은 다른 컴퓨팅된 클로즈드 영역들과는 독립적이고 개별적으로 선택가능한, 상기 모든 클로즈드 영역들을 컴퓨팅하는 단계를 포함한다.

Description

이미지의 파티셔닝{PARTITIONING AN IMAGE}
본 발명은 컴퓨터 프로그램들 및 시스템들의 분야에 관한 것으로, 보다 구체적으로는 이미지를 파티셔닝하기 위한 방법, 시스템 및 프로그램에 관한 것이다.
이미지들을 처리하는데 사용되는 대부분의 드로잉 소프트웨어는 이미지의 서브부분의 추출을 위한 기능들을 사용자에게 제공하다. 통상적으로, 사용자는 이미지를 파티셔닝할 때 다음의 동작들을 수행해야 한다. 먼저, 그는 그가 찾고 있는 서브부분의 경계의 범위를 정한다; 그는 프리 형태 또는 프리미티브 형태 (직사각형, 원...) 중 어느 하나를 드로잉할 수 있다. 그 후, 사용자의 드로잉에 기초하여, 소프트웨어는 이미지를 2 개의 상이한 부분들로 분할하려고 시도한다 : 제 1 부분은 드로잉의 내부에 배치되고, 제 2 부분은 그 드로잉의 외부에 배치된다.
프리 형태가 사용자에 의해 드로잉된 특정 경우에, 소프트웨어는 제 1 점을 마지막 점에 링크시킴으로써 드로잉을 클로즈한다. 이것은 드로잉이 이미지에서 "내부" 부분 및 "외부" 부분을 정의한다는 것을 확실히 할 필요가 있다. 이것은 도 1 및 도 2 상에 예시된다. 도 1 에서, 사용자에 의해 드로잉된 프리 형태 (10) 는 그 프리 형태의 시작 점과 그것의 종료 점 간에 연결이 없기 때문에 클로즈되지 않는다. 링크 (20) 가 도 2 상에 예시한 바와 같이, (경계인) 클로즈드 프리 형태를 획득하기 위해 소프트웨어에 의해 생성된다. 이 방식에 의해, 이미지를 파티셔닝하기 위한 공지된 방법은 이미지를 2 개의 별개의 영역들로 분리하는 것이 가능하다 : 제 1 영역은 경계의 내부에 있고 제 2 영역은 경계의 외부에 있다. 그 후, 그 분리의 사용자 검증 후 (때로는 그것은 자동일 수 있다) 에는, 단지 내측 부분만이 남겨진다. 이 선택은 때로는 외측 부분을 남기도록 뒤바뀔 수도 있지만, 항상 그렇지는 않다. 이미지의 서브부분은 단지 선택될 뿐이다. 이 선택으로부터 다른 이미지를 생성하거나, 또는 그것 또는 어떤 다른 것을 제거하기 위해, 사용자는 다른 액션을 행해야 한다. 예를 들어, 그의 선택으로 다른 이미지를 생성하기 위해, 사용자는 새로운 이미지를 생성한 후 복사 붙이기 (copy paste) 를 해야 하거나, 또는 그의 선택을 뒤집어 원하지 않는 부분을 제거해야 한다.
이미지를 파티셔닝하기 위한 공지된 솔루션들은 몇몇 제한들을 포함한다. 첫번째 제한은 사용자가 그가 원하는 서브 부분을 항상 정확히 정의할 수 있는 것은 아니라는 것이다. 그것은 소프트웨어가 경계들을 특정하기 위해 그가 프리미티브 형태 (예를 들어, 직사각형) 를 이용하는 것만을 허용하거나, 또는 드로잉의 형태를 고려하지 않고 (그 형태가 예를 들어 이미 클로즈드 곡선을 정의하는 경우), 클로즈드 경계를 생성하기 위해 처음 점과 마지막 점을 링크시키거나 하기 때문이다. 이것은 도 3 및 도 4 상에 예시한 바와 같이, 부적절한 결과들을 야기한다. 도 3 에서, 사용자는 이미지 상에 클로즈드 프리 형태인 프리 형태를 드로잉하였다. 그러나, 클로즈드 프리 형태의 시작 점과 종료 점 사이에는 연결이 없어 소프트웨어가 이들 2 개의 점들 간에 링크를 생성하며, 따라서 도 4 상에 예시한 바와 같은 제 2 클로즈드 영역의 생성을 야기한다. 따라서, 사용자의 의도가 고려되고 있지 않다.
다른 결점은 소프트웨어에 의해 남겨진 서브부분이 항상 내측 부분이라는 것이다. 일부 프로그램들에서, 사용자는 그것을 뒤집어 내측 부분 대신에 외측 부분을 남기기 위한 어떤 동작들을 행할 수 있지만 항상 가능한 것은 아니다.
추가 결점은 여러 서브부분들의 선택이 시간 소비적이고 너무 오래 걸린다는 것이다. 이것은 사용자가 이미지에 대해 작업하고 그 이미지로부터 2 개의 상이한 부분들을 추출하길 원한다는 다음의 시나리오에서 예시된다. 기존의 소프트웨어를 이용하면, 그는 이들 단계들을 따라야 한다 : 오리지널 이미지를 임포팅 (importing), 클로즈드 형상을 드로잉하는 것을 주의함으로써 제 1 서브부분을 정의, 이 부분을 새로운 이미지에 복사/붙이기 (또는 그 선택을 뒤집어 선택되지 않은 부분을 제거), 오리지널 이미지를 다시 임포팅, 클로즈드 형상을 드로잉하는 것을 주의함으로써 제 2 서브부분을 정의, 이 부분을 새로운 이미지에 복사/붙이기 (또는 그 선택을 뒤집어 선택되지 않은 부분을 제거).
하나의 또다른 결점은 사용자가 단순히 이미지를 반으로 커팅하길 원한다면, 도 5 및 도 6 상에 예시한 바와 같이, 그는 그가 원하는 부분 둘레에 원을 그려야 할 것이다. 이것은 직관적이지 않고, 시간 소비적일 뿐만 아니라 인체공학적이지도 않다.
추가적인 결점은 공지된 솔루션들이 사용자에 의해 드로잉된 클로즈드 영역들의 또는 프리미티브 형태의 "내부" 및 "외부" 의 검출에 의존하기 때문에 서브부분들의 선택이 예측불가능할 수 있다는 것이다. 그러나, 프리 형태의 "내부" 및 "외부" 의 식별은 현재의 알고리즘들에 대해 복잡한 태스크일 수 있다; 특히, 프리 형태가 여러 교차점들을 포함하는 경우, 그 알고리즘은 프리 형태의 어느 부분들이 내부 및 외부인지를 식별할 수 없다. 더욱이, 클로즈드 영역들의 "내부" 및 "외부" 의 검출은 그 검출이 현재의 알고리즘들에 대해 간단하지 않기 때문에 컴퓨터 시스템에 대해 시간 소비적이다. 따라서, 상당한 양의 컴퓨팅 리소스들이 예측불가능할 수 있는 결과를 위해 사용된다.
이 맥락 내에서, 이미지를 하나 이상의 선택가능한 서브부분들로 파티셔닝하기 위한 개선된 방법의 필요성이 여전히 있다.
따라서, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법이 제공된다. 컴퓨터 구현 방법은 :
- 보더 (border) 를 포함하는 이미지를 디스플레이하는 단계;
- 이미지 위에 곡선을 드로잉하는 단계;
- 이미지의 곡선 및 보더에 의해 범위가 정해진 모든 클로즈드 영역들을 컴퓨팅하는 단계로서, 각각의 클로즈드 영역은 다른 컴퓨팅된 클로즈드 영역들과는 독립적이고 개별적으로 선택가능한, 상기 모든 클로즈드 영역들을 컴퓨팅하는 단계
를 포함한다.
컴퓨터 구현 방법은 :
- 이미지 위에 곡선을 드로잉하는 단계 후, 이미지 위에 드로잉된 곡선으로부터 연속적인 폴리라인을 구축하는 단계 (S40); 연속적인 폴리라인을 형성하는 각각의 라인에 대해, 상기 각각의 라인을 에지로서 갖는 디스플레이된 이미지의 픽셀들을 식별하는 단계를 더 포함하고;
- 연속적인 폴리라인을 구축하는 단계는 : 이미지 위에 드로잉된 곡선의 2 개의 별개의 종료 점들을 링크시키는 픽셀들의 세트를 컴퓨팅하는 단계로서, 그 세트의 이웃하는 픽셀들은 공동으로 에지를 갖는, 상기 픽셀들의 세트를 컴퓨팅하는 단계; 연속적인 폴리라인을 구축하는 단계로서, 그 폴리라인의 각각의 라인은 컴퓨팅된 픽셀의 세트의 픽셀들 중 하나의 픽셀의 에지인, 상기 연속적인 폴리라인을 구축하는 단계를 포함하고;
- 디스플레이된 이미지의 픽셀들을 식별하는 단계 후, 각각의 식별된 픽셀을 마킹하는 단계로서, 그 마킹은 폴리라인의 상기 각각의 식별된 픽셀에 대한 포지션을 나타내는, 상기 각각의 식별된 픽셀을 마킹하는 단계를 더 포함하고;
- 각각의 식별된 픽셀을 마킹하는 단계는 각각의 식별된 픽셀을 RGBA 컬러 공간으로 인코딩된 컬러로 컬러링하는 단계에 의해 수행되며 : 제 1 RGBA 값은 픽셀의 우측에 포지셔닝된 폴리라인을 나타내고; 제 2 RGBA 값은 픽셀의 좌측에 포지셔닝된 폴리라인을 나타내고; 제 3 RGBA 는 픽셀의 상측에 포지셔닝된 폴리라인을 나타내며; 제 4 RGBA 값은 픽셀의 하측에 포지셔닝된 폴리라인을 나타내고;
- 각각의 픽셀의 컬러링은 누적되고;
- 이미지의 곡선 및 보더에 의해 범위가 정해진 모든 클로즈드 영역들을 컴퓨팅하는 단계는 픽셀의 영역 멤버십 기준이 연속적인 폴리라인에 걸쳐 있는 것이 아닌 영역 성장 알고리즘을 이용함으로써 수행되고;
- 영역 성장 알고리즘은 : (i) 제 1 클로즈드 영역들에 속하는 이미지의 제 1 픽셀을 선택하는 단계; (ii) 선택된 픽셀 상의 마킹을 이용함으로써 기준을 충족하는 선택된 제 1 픽셀의 이웃하는 픽셀들을 식별하는 단계; (iii) 단계 (ii) 에서 식별된 각각의 이웃하는 픽셀을 선택된 제 1 픽셀로서 선택 및 취급될 픽셀들의 리스트에 추가하는 단계; (iv) 선택된 제 1 픽셀을 체크된 것으로 마킹하고 선택된 제 1 픽셀을 제 1 클로즈드 영역들에 속하는 픽셀의 리스트에 추가하는 단계; (v) 선택될 픽셀들의 리스트에서 제 2 픽셀을 선택하고 제 2 픽셀에 대해 단계 (ii) 내지 단계 (iv) 를 수행하는 단계; (vi) 선택될 픽셀들의 리스트의 모든 픽셀들이 선택될 때까지 단계 (v) 를 반복하는 단계;
- (vii) 제 2 클로즈드 영역에 속하는 이미지의 제 3 픽셀을 식별하는 단계로서, 제 3 픽셀은 단계 (iv) 에서 마킹되지 않은, 상기 이미지의 제 3 픽셀을 식별하는 단계; (viii) 단계 (ii) 내지 단계 (vi) 을 수행하는 단계; (ix) 이미지의 모든 픽셀들이 체크된 것으로 마킹될 때까지 단계 (vii) 내지 단계 (viii) 을 반복하는 단계를 포함하고;
- 연속적인 폴리라인을 구축하는 단계에서 시작하여 수행된 단계들은 마스크 상에 수행되며, 여기서 마스크는 디스플레이된 이미지와 동일한 사이즈 및 동일한 수의 픽셀들을 가진 이미지이고;
- 마스크는 블랭크 이미지로서 초기화되고 체크된 것으로 마킹된 픽셀들은 클로즈드 영역들에 속하는 픽셀의 리스트에 추가될 때 블랙으로 컬러링되고;
- 컴퓨팅된 클로즈드 영역들은 쿼드트리 데이터 구조에 저장되며;
- 모든 클로즈드 영역들을 컴퓨팅하는 단계 후, 적어도 하나의 클로즈드 영역을 개별적으로 선택하는 단계; 선택된 각각의 클로즈드 영역에 대해 독립적인 이미지를 생성하는 단계를 더 포함할 수도 있다.
또한, 상기 방법을 수행하기 위한 명령들을 포함하는 컴퓨터 프로그램이 제공된다.
또한, 컴퓨터 프로그램을 기록하고 있는 컴퓨터 판독가능 저장 매체가 제공된다.
또한, 메모리 및 그래픽 사용자 인터페이스에 커플링된 프로세서를 포함하는 시스템이 제공되며, 그 메모리는 컴퓨터 프로그램을 기록하고 있다.
이제, 첨부한 도면들을 참조하여, 제한이 아닌 일 예로 본 발명의 실시형태들이 설명될 것이다.
- 도 1 내지 도 6 은 이미지를 파티셔닝하기 위한 공지된 방법들의 예들을 도시한다;
- 도 7 은 본 발명의 예를 예시하는 플로우차트이다;
- 도 8 은 본 발명에서 이용되는 전파 알고리즘 (propagation algorithm) 의 예를 예시하는 플로우차트이다;
- 도 9 는 본 발명에 따라 파티셔닝된 이미지로부터 새로운 이미지를 생성하기 위한 동작들을 예시하는 플로우차트이다;
- 도 10 은 이미지 위의 사용자에 의해 드로잉된 곡선을 도시한다;
- 도 11 내지 도 13 은 본 발명에 따른, 곡선으로부터의 폴리라인의 컴퓨팅의 예를 예시한다;
- 도 14 내지 도 21 은 본 발명에 따른, 클로즈드 영역들의 컴퓨팅을 도시한다;
- 도 22 는 본 발명을 수행하기 위한 시스템의 예를 도시한다.
도 7 의 플로우차트를 참조하여, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법이 제안된다. 이미지를 파티셔닝하는 것은 이미지가 분리가능한 적어도 2 개의 부분들로 분할된다는 것을 의미한다. 방법은 보더를 포함하는 이미지를 디스플레이하는 단계를 포함한다. 그 후, 곡선이 디스플레이되는 이미지 위에 드로잉된다. 그 후, 이미지의 곡선 및 보더에 의해 범위가 정해진 모든 클로즈드 영역들이 컴퓨팅된다. 각각의 컴퓨팅된 클로즈드 영역은 다른 컴퓨팅된 클로즈드 영역들과는 독립적이며 개별적으로 선택가능하다.
본 발명의 방법은 이미지의 보다 효율적인 파티셔닝을 제공한다. 실제로, 클로즈드 영역들의 수 (즉, 서브부분들의 수) 는 이미지의 보더 및 사용자에 의해 드로잉된 곡선으로부터만 컴퓨팅되며, 그것은 곡선의 시작 점과 종료 점 사이의 링킹 (linking) 을 요구하지 않는다. 흥미롭게도, 이미지의 보더는 클로즈드 영역들의 수를 컴퓨팅할 때 사용된다. 이렇듯, 사용자가 이미지를 반으로 커팅하길 원한다면, 그는 이미지의 상부에서 하부까지 라인을 드로잉하기만 하면 된다. 이미지의 보더가 클로즈드 영역의 수를 컴퓨팅할 때 사용되기 때문에, 그의 드로잉에서의 클로즈드 형상의 수에 의존하여, 적어도 하나의 클로즈드 영역 - 사용자에 의해 드로잉된 곡선이 교차점을 포함하지 않을 때 완전한 이미지 - 내지 여러 클로즈드 영역들이 있다. 따라서, 사용자의 의도는 바뀌지 않지만 "내부" "외부" 결정들이 없기 때문에 클로즈드 영역을 컴퓨팅하기 위해 적은 컴퓨팅 리소스들이 요구된다. 추가 이점들이 상세한 설명에서 논의될 것이다.
방법은 컴퓨터 구현된다. 이것은 방법의 단계들 (또는 실질적으로 모든 단계들) 이 적어도 하나의 컴퓨터, 또는 비슷한 임의의 시스템에 의해 실행된다는 것을 의미한다. 따라서, 방법의 단계들은 가능하게는 완전히 자동으로, 또는 반자동으로 컴퓨터에 의해 수행된다. 예들에서, 방법의 단계들 중 적어도 일부의 단계의 트리거링이 사용자 컴퓨터 상호작용을 통하여 수행될 수도 있다. 요구된 사용자 컴퓨터 상호작용의 레벨은 사용자의 바람들을 구현할 필요성과 균형이 잡혀 부여 및 예견된 자동화의 레벨에 의존할 수도 있다. 예들에서, 이 레벨은 사용자 정의되고/되거나 사전 정의될 수도 있다.
예를 들어, 이미지 위에 곡선을 드로잉하는 단계 (S20) 는 사용자 액션에 따라 트리거링된다. 적어도 하나의 클로즈드 영역을 개별적으로 선택하는 단계 (S110) 는 또한 사용자 액션에 따라 수행될 수 있다.
방법의 컴퓨터 구현의 통상적인 예는 그 방법을 이 목적을 위해 적응된 시스템으로 수행하는 것이다. 시스템은 메모리 및 그래픽 사용자 인터페이스 (GUI) 에 커플링된 프로세서를 포함할 수도 있으며, 메모리는 방법을 수행하기 위한 명령들을 포함하는 컴퓨터 프로그램을 기록하고 있다. 메모리는 또한 데이터베이스를 저장할 수도 있다. 메모리는 가능하게는 여러 물리적 별개의 부분들 (예를 들어, 하나는 프로그램용이고 가능하게는 하나는 데이터베이스용이다) 을 포함하는, 이러한 저장을 위해 적응된 임의의 하드웨어이다.
"데이터베이스" 는, 검색 및 취출을 위해 조직화된 데이터 (즉, 정보) 의 임의의 컬렉션을 의미한다. 메모리 상에 저장될 때, 데이터베이스는 컴퓨터에 의한 빠른 검색 및 취출을 허용한다. 데이터베이스들은 실제로는 다양한 데이터 프로세싱 동작들과 함께 데이터의 저장, 취출, 수정, 및 삭제를 용이하게 하기 위해 구조화된다. 데이터베이스는 각각이 하나 이상의 필드들로 이루어지는 레코드들로 분해될 수 있는 파일 또는 파일들의 세트로 이루어질 수도 있다. 필드들은 데이터 저장의 기본 단위들이다. 사용자들은 주로 질의들을 통하여 데이터를 취출할 수도 있다. 키워드들을 이용하고 커맨드들을 소팅하여, 사용자들은 이용되는 데이터베이스 관리 시스템의 룰들에 따라 데이터의 특정 집계 (aggregate) 들에 대한 리포트들을 취출 또는 생성하기 위해 많은 레코드들에서의 필드를 빠르게 검색, 재배열, 그룹화, 및 선택할 수 있다.
방법은 일반적으로 이미지들을 조작한다. 이미지는 2 차원일 수도 있다. 이미지는 3 차원, 예를 들어, CAD (Computer-Aided Design) 시스템에서 3 차원 장면으로 도시된 3 차원 모델링된 오브젝트의 표현일 수도 있다. 본 발명에서, 용어 이미지는 이미지의 수치 표현인 디지털 이미지를 지칭한다. 수치 표현은 당업계에 공지한 바와 같이, 이미지의 데이터가 2 진 디지트들의 세트들로 표현된다는 것을 수반한다. 이미지는, 래스터 이미지 또는 벡터 이미지일 수 있지만, 이들에 제한되지는 않는다. 래스터 이미지는 각각의 픽셀이 디지털 값을 표현하는 유한 세트의 픽처 엘리먼트들 (픽셀들) 로서 저장된다. 벡터 이미지는 이미지를 표현하기 위해 수학식들에 기초하는 기하학적 프리미티브들의 세트로서 저장된다.
디스플레이될 때, 래스터 이미지 및 벡터 이미지는 픽셀들의 세트로서 표현된다. 이 목표를 위해, 벡터 이미지는 디스플레이되기 전에 래스터 이미지로 컨버팅된다; 이것은 래스터화라고 불린다. 픽셀들은 이미지에서의 가장 작은 개개의 엘리먼트들이다. 픽셀은 이미지의 하나의 특정 점에서의 컬러 시스템에서의 소정의 컬러의 밝기를 표현하는 양자화된 값들을 보유한다. 실제로, 이미지는 컴퓨터 시스템에 의해 실행된 이미지 뷰어 소프트웨어에 의해 디스플레이된다. 이미지 뷰어 소프트웨어는 본 발명의 방법을 구현할 수 있거나, 또는 방법은 독립적인 컴퓨터 프로그램에서 구현될 수 있다.
래스터 이미지 또는 벡터 이미지 또는 픽셀들로 표현된 임의의 다른 타입의 이미지의 픽셀들의 세트는 일반적으로 픽셀들의 직사각형 그리드를 형성하며, 여기서 각각의 픽셀은 또한 직사각형이다. 각각의 픽셀은 이웃하는 픽셀들과 연결된다. 픽셀 연결성은 당업계에 공지한 바와 같이, 2 또는 3 차원 이미지들에서의 픽셀들이 그들의 이웃들과 관련되는 방식이다. 예를 들어, 이미지의 픽셀들이 직사각형들이라면, 각각의 픽셀은 4 개의 에지들을 갖고 이웃하는 픽셀과 하나 이상의 에지들을 공유한다.
픽셀의 그리드는 당업계에 공지한 바와 같이, 직사각형 그리드에 제한되지 않고 픽셀이 최대 6 개의 이웃하는 픽셀들을 가질 수도 있는 육각형 그리드 또는 스트레처 본드 (stretcher bond) 직사각형 그리드일 수도 있다. 다음의 설명에서는, 이미지가 직사각형 픽셀들의 직사각형 그리드로 표현되는 가장 흔한 경우가 단지 설명을 위해 논의될 것이다.
도 22 는 본 발명의 방법을 수행하기 위한 시스템의 예를 도시한다. 시스템은 통상 컴퓨터, 예를 들어, 개인용 컴퓨터이다. 도 22 의 컴퓨터는 내부 통신 BUS (1000) 에 접속된 중앙 프로세싱 유닛 (CPU; 1010), 그 BUS 에 또한 접속된 랜덤 액세스 메모리 (RAM; 1070) 를 포함한다. 컴퓨터에는 또한, BUS 에 접속된 비디오 랜덤 액세스 메모리 (1100) 와 연관되는 그래픽 프로세싱 유닛 (GPU; 1110) 이 제공된다. 비디오 RAM (1100) 은 또한 프레임 버퍼로도 당업계에 알려져 있다. 대용량 저장 디바이스 제어기 (1020) 는 대용량 메모리 디바이스, 이를 테면 하드 드라이브 (1030) 에 대한 액세스들을 관리한다. 컴퓨터 프로그램 명령들 및 데이터를 유형적으로 구현하기에 적합한 대용량 메모리 디바이스들은 일 예로, 반도체 메모리 디바이스들, 이를 테면 EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 이를 테면 내부 하드 디스크들 및 착탈식 디스크들; 광자기 디스크들; 및 CD-ROM 디스크들 (1040) 을 포함한, 모든 형태들의 비휘발성 메모리를 포함한다. 전술한 것 중 임의의 것은 특수 설계된 ASIC들 (application-specific integrated circuits) 에 의해 보충되거나, 또는 그것에 통합될 수도 있다. 네트워크 어댑터 (1050) 는 네트워크 (1060) 에 대한 액세스들을 관리한다. 컴퓨터는 또한 햅틱 디바이스 (1090), 이를 테면 커서 제어 디바이스, 키보드 등을 포함할 수도 있다. 커서 제어 디바이스는 컴퓨터에 있어서, 디스플레이 (1080) 상의 임의의 원하는 위치에 사용자가 커서를 선택적으로 포지셔닝하게 하는데 사용된다. 또한, 커서 제어 디바이스는 사용자가 다양한 커맨드들을 선택하게 하고, 제어 신호들을 입력하게 한다. 커서 제어 디바이스는 시스템에의 제어 신호들의 입력을 위해 다수의 신호 생성 디바이스들을 포함한다. 통상적으로, 커서 제어 디바이스는 마우스일 수도 있으며, 그 마우스의 버튼이 신호들을 생성하는데 사용된다. 대안적으로 또는 추가적으로, 컴퓨터 시스템은 센서티브 패드, 및/또는 센서티브 스크린을 포함할 수도 있다.
본 발명은 컴퓨터 프로그램에 의해 구현될 수 있다. 컴퓨터 프로그램은 컴퓨터에 의해 실행가능한 명령들을 포함하며, 그 명령들은 상기 시스템으로 하여금, 본 방법을 수행하게 하는 수단을 포함한다. 프로그램은 시스템의 메모리를 포함하는 임의의 데이터 저장 매체 상에 기록가능할 수도 있다. 프로그램은 예를 들어, 디지털 전자 회로부에서, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 또는 그들의 조합들에서 구현될 수도 있다. 프로그램은 장치, 예를 들어, 프로그램가능 프로세서에 의한 실행을 위해 머신 판독가능 저장 디바이스에서 유형적으로 구현된 제품으로서 구현될 수도 있다. 방법 단계들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 방법의 기능들을 수행하도록 명령들의 프로그램을 실행하는 프로그램가능 프로세서에 의해 수행될 수도 있다. 프로세서는 따라서 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 그들에 데이터 및 명령들을 송신하기 위해 프로그램가능 및 커플링될 수도 있다. 애플리케이션 프로그램은 고도 절차 또는 객체 지향 프로그램 언어로, 또는 원한다면 어셈블리 또는 기계 언어로 구현될 수도 있다. 임의의 경우에, 그 언어는 컴파일링된 또는 인터프리팅된 언어일 수도 있다. 프로그램은 전부 설치 프로그램 또는 업데이트 프로그램일 수도 있다. 시스템 상의 프로그램의 애플리케이션은 임의의 경우에는 본 방법을 수행하기 위한 명령들을 초래한다.
다시 도 7 을 참조하면, 단계 S10 에서, 이미지가 예를 들어, 시스템에 의해 디스플레이된다. 이미지를 디스플레이하는 것은, 픽셀들의 세트가 디스플레이 디바이스 상에, 예를 들어, 도 22 의 디스플레이 (1080) 상에 표현된다는 것을 의미한다. 이미지를 디스플레이하는 프로세스는 당업계에 공지된 바와 같이 수행된다. 이미지는 보더를 포함한다. 이미지의 보더는 픽셀 연결성이 부분적으로 수행되는 이미지의 픽셀들의 세트이다. 예를 들어, 직사각형 픽셀은 그 픽셀이 3 개 이하의 이웃하는 픽셀들을 갖는다면 이미지의 보더에 있다. 이미지의 디스플레이는 사용자 액션에 따라, 예를 들어, 이미지의 사용자 선택 후에 트리거링될 수 있다.
다음에, 단계 S20 에서, 단계 S10 에서 디스플레이된 이미지 상에, 예를 들어, 사용자에 의해 곡선이 드로잉된다. 용어 곡선은 라인 세그먼트와 유사한 오브젝트를 의미하지만, 직선인 것으로 요구되지는 않는다; 라인 세그먼트는 2 개의 별개의 종료 점들에 의해 바운딩되는 라인의 부분이며 그 종료 점들 간의 라인 상에 모든 점을 포함한다. 본 발명에서, 용어 곡선은 표현 프리 형태 형상의 동의어이다. 대안적으로, 미리 정의된 형상이 이미지 상에 드로잉될 수 있다. 임의의 미리 정의된 형상이 이용될 수 있다.
곡선의 드로잉은 사용자에 의해 수행된다. 그는 당업계에 공지된 바와 같이 진행한다. 예를 들어, 사용자는 햅틱 디바이스, 이를 테면 마우스, 터치 센서티브 디스플레이 상의 스타일러스를 이용할 수 있다.
이미지 위에 곡선을 드로잉하는 것이란 표현은 사용자가 이미지의 표현과 (예를 들어, 이미지가 표현되는 컴퓨터 스크린과) 상호작용하고, 이미지가 수정되지 않는다 (예를 들어, 이미지의 픽셀들이 컬러링되지 않는다) 는 것을 수반한다. 사용자에게 보여지는 곡선의 표현은 일시적이며 이미지의 표현 상에 중첩된다. 따라서, 곡선이 이미지 위에 드로잉된다고 말할 수 있다.
이제 도 10 을 참조하면, 사용자에 의해 드로잉된 곡선이 도시되어 있다 : 사용자에 의해 드로잉된 곡선의 표현 (100) 은 수정되지 않는 이미지 상에 중첩된다. 이미지의 보더는 블랙 플레인 라인들로 표현된다. 흥미롭게도, 곡선의 일부 부분들이 이미지의 외부에 있다는 것을 알 수 있다. 이것은 사용자가 이미지 바로 위가 아닌 컴퓨터 스크린 위에 곡선을 드로잉했기 때문에 가능하다. 대안적으로, 이미지는 그 이미지보다 더 큰 이미지 이미지 캔버스 (미도시) 상에 놓일 수도 있다. 사용자는 이미지 밖에 곡선을 (완전히 또는 부분적으로) 드로잉할 수 있다; 그 곡선의 드로잉은 이미지의 경계에 의해 제한되지 않는다.
그 후, 단계 S30 에서, 마스크가 예를 들어, 시스템에 의해 컴퓨팅된다. 마스크는 통상, 사용자가 곡선을 드로잉하는 것을 중단할 때 컴퓨팅된다. 마스크는 디스플레이된 이미지와 동일한 사이즈 및 동일한 수의 픽셀들을 가진 이미지이다. 예를 들어, 단계 S10 에서 디스플레이된 이미지가 (x×y) 픽셀들의 사이즈를 갖고 n=x×y 픽셀들을 포함한다면, 마스크는 그것이 동일한 (x×y) 픽셀들의 사이즈를 갖고 동일한 수 n 의 픽셀들을 갖도록 컴퓨팅된다. 다르게 말하면, 마스크는 단계 S10 에서 디스플레이된 이미지와 동일한 사이즈 및 해상도를 갖는다.
마스크의 하나의 픽셀과 이미지의 하나의 픽셀 간에 하나의 대응이 있어, 마스크의 하나의 픽셀에 대해 수행된 동작(들)의 결과는 이미지의 하나의 대응하는 픽셀로 이어질 수 있다.
실제로, 마스크는 블랭크 이미지로서 초기화되고 그것의 픽셀들의 불투명도 (opacity) 의 값은 예를 들어, RGBA (Red Green Blue Alpha) 컬러 공간에 있어서 각각의 픽셀에 대해 동일하다. 이것은 마스크의 각각의 픽셀의 컬러 채널들을 균등하게 셋업하도록 허용한다. 마스크는 투명한 것으로 초기화되는 것이 바람직하다. 마스크는 사용자에게 디스플레이되지 않고 실행될 때 본 방법에 의해 이용된 내부 구조로서 보여져야 한다는 것이 이해될 것이다. 디스플레이되지 않으면, 사용자는 마스크에 대해 직접 상호작용하지 않는다.
그 후, 도 7 의 단계 S40 에서, 연속적인 폴리라인이 예를 들어, 시스템에 의해 이미지 상에 드로잉된 곡선으로부터 구축된다. 연속적인 폴리라인은 각각의 세그먼트의 종료 점들이 특정되는 하나 이상의 라인 세그먼트들 (라인들로도 지칭됨) 로 구성된다. 폴리라인은 하나의 점에 연결되는 2 개의 별개의 종료 점들을 제외하고는, 폴리라인의 각각의 점이 2 개의 세그먼트들에 연결되기 때문에 연속적이다. 연속적인 폴리라인을 구축하는 것은 드로잉된 곡선의 각각의 점의 픽셀 포지션이 컴퓨팅된다는 것을 의미한다.
곡선의 부분(들)이 도 10 상에 예시한 바와 같이 이미지의 외부에 드로잉된 이벤트에서, 이들 부분(들)은 고려되고 있지 않다. 이것은 도 14 상에 도시되며, 여기서 도 10 의 곡선으로부터 3 개의 연속적인 폴리라인들 (140, 142, 144) 이 구축되었다. 이미지의 외부의 (즉 이미지 위에 있지 않은) 곡선의 부분들은 3 개의 독립적인 곡선들이 이미지 위에 드로잉되었다고 시스템이 간주하도록 무시되었다; 도 14 상에는, 하나의 연속적인 폴리라인 (140, 142, 144) 이 각각의 독립적인 곡선에 대해 컴퓨팅되었다. 사실, 곡선의 무시된 부분들은 (i) 이미지의 외부에 위치하고 (ii) 그들은 이미지의 보더와 곡선 간의 제 1 교차점에서 이미지의 보더와 곡선 간의 제 2 교차점까지 연장된다. 다르게 말하면, 유지되는 (이미지의 내부 및 외부에 드로잉된) 곡선의 부분들은 (i) 이미지의 내부에 있고 (ii) 그들은 (a) 이미지의 보더와 곡선 간의 제 1 교차점에서 이미지의 보더와 곡선 간의 제 2 교차점까지, 또는 (b) 이미지의 보더와 곡선 간의 제 1 교차점에서 이미지의 내부의 곡선의 종료 점까지 연장된다. 예를 들어, 단계 S40 에서 구축된 연속적인 폴리라인 (142) 은 이미지의 보더 상에 그것의 2 개의 종료 점들을 갖는다; 연속적인 폴리라인들 (140 및 142) 은 보더 상에 단지 하나의 종료 점을 갖고 제 2 종료 점은 이미지의 내부에 위치한다. 곡선이 이미지 위에 완전히 드로잉된다면, 완전한 곡선이 유지된다는 것이 이해될 것이다.
이미지 위에 드로잉된 곡선의 픽셀 포지션들은 당업계에 공지된 바와 같이 컴퓨팅될 수도 있다. 도 8 및 도 9 상에 도시된 실시형태에서는, 당업계에 널리 공지되어 있는 브레젠험의 알고리즘의 도출 (derivation) 이 모든 이들 픽셀들 포지션들을 링크시키기 위해 그리고 픽셀들의 연속적인 라인을 획득하기 위해 이용된다.
브레젠험의 알고리즘은 2 개의 분리된 픽셀들을 링크시키기 위해 최단 경로를 컴퓨팅한다. 이것은 도 11 상에 예시되며, 여기서 그레이 픽셀들은 이미지 상에 드로잉된 곡선 (113) 의 2 개의 별개의 종료 점들의 포지션들을 표현하는 2 개의 픽셀들 (110, 112) 을 링크시키기 위해 브레젠험의 알고리즘을 이용함으로써 획득된 픽셀들이다. 원래의 브레젠험의 알고리즘에서는, 이웃하는 픽셀들 (114, 116) 이 단지 하나의 정점을 공유하고 있는 한편, 다른 이웃하는 픽셀들 (116, 118) 은 다른 픽셀과 적어도 하나의 에지를 공유한다는 것을 알 수 있다.
이제 도 12 를 참조하면, 브레젠험의 알고리즘의 도출이 도시되어 있다 : 별개의 종료 점들을 표현하는 2 개의 픽셀들 (110, 112) 을 링크시키는 픽셀들의 세트에서, 각각의 픽셀은 원래의 브레젠험의 알고리즘에 의해 식별된 픽셀들 간의 일 픽셀과 적어도 하나의 공통 에지를 공유한다. 다르게 말하면, 이웃하는 픽셀들 간에 허용된 단독 픽셀 연결성은 에지 연결성이다. 실제로, 도 12 에 도시된 결과는 원래의 브레젠험의 알고리즘에 의해 선택되지 않은, (i) 단지 정점만을 공유하는 2 개의 픽셀들과 공통 에지를 공유하고, (ii) 드로잉된 곡선이 위치하는 픽셀들 (120, 122, 124, 126) 을 식별함으로써 획득된다.
이제 도 13 을 참조하면, 연속적인 폴리라인 (130) (점선들로 표현됨) 이 픽셀들의 연속적인 에지들로부터 컴퓨팅될 수 있으며, 여기서 각각의 에지는 폴리라인의 라인이다. 연속적인 에지들은 (i) 곡선의 2 개의 별개의 종료 점들을 링크시키고 원래의 브레젠험의 알고리즘으로 획득된 픽셀들의 세트, 및/또는 (ii) 2 개의 이웃하는 픽셀들 간의 에지 연결성만이 있다는 것을 보장하기 위해 추가된 새로운 픽셀들 간에 발견된다. 도 13 에서, 연속적인 폴리라인을 형성하는 픽셀들의 에지들은 폴리라인이 모든 픽셀들의 기준 점들을 링크시키도록 선택된다. 기준 점은 픽셀의 4 개의 정점들 중 하나이다. 픽셀에 대한 기준 점의 선택은 임의적이다; 이 예에서는, 픽셀의 좌측-하부 정점이 기준 점으로서 선택된다. 임의의 정점이 기준점으로서 선택될 수 있는 한편, 모든 픽셀들은 이 선택에 순응한다. 도 13 에서, 각각의 픽셀은 그 자신의 좌측-하부 정점을 기준 점으로서 가져, 폴리라인 (130) 은 픽셀 (110) 의 정점 (111) 에서 시작하고 픽셀 (112) 의 정점 (119) 의 끝난다.
폴리라인의 컴퓨팅은 일반적으로 단계 S30 에서 컴퓨팅된 마스크 상에 수행된다. 이것은 이미지를 수정하는 것을 회피하며, 따라서 컴퓨팅 리소스들의 소비를 감소시킨다. 도 16 은 도 11 의 곡선 (113) 으로부터 획득된 폴리라인 (160) 을 예시한다.
연속적인 폴리라인을 구축하는 단계는 이미지의 보더에 대한 폴리라인을 구축하는 단계를 더 포함할 수 있다. 실제로, 이미지는 픽셀들의 직사각형 그리드를 형성하고, 이미지의 보더는 따라서 직사각형이다. 이러한 경우에, 이미지의 4 개의 변들의 각각의 변은 폴리라인이다. 이미지의 변에 대한 폴리라인의 구축은 이미지에 대한 정보를 이용한다 : 하나는 이미지의 각각의 정점의 좌표들을 컴퓨팅하고; 그 후 하나는 그 정점들을 세그먼트와 링크시킨다. 이것은 도 15 에 도시되며, 정점들을 각각 연결 (150-152, 152-154, 154-156, 156-150) 하는 이미지의 보더의 4 개의 폴리라인들 (151, 153, 155, 157) 이 이제 점선들로 표현된다는 것을 제외하고는 도 14 와 동일하다. 이미지의 보더에 대한 폴리라인을 구축하는 것은 바람직하게는 이미지의 보더가 이제 경계로서 간주되기 때문에 클로즈드 영역들의 사용자에 의한 생성을 용이하게 한다. 예를 들어, 사용자가 이미지를 반으로 커팅하길 원한다면, 그는 이미지의 상부에서 하부까지 라인을 드로잉하기만 하면 되고 그는 그가 이미지의 좌측 부분을 남기길 원하는지 또는 우측 부분을 남기길 원하는지 또는 양자의 부분들을 남기길 원하는지를 선택한다. 따라서, 사용자는 도 5 및 도 6 을 참조하여 이전에 논의한 바와 같이, 그가 단순히 이미지를 반으로 커팅하길 원하는 경우에 더 이상 이미지 둘레에 원을 그릴 필요가 없다.
그 후, 도 8 의 단계 S50 에서는, 적어도 하나의 에지가 컴퓨팅된 연속적인 폴리라인의 라인들 중 하나인 이미지의 모든 픽셀들이 식별된다. 연속적인 폴리라인이 드로잉된 곡선으로부터 마스크 상에 구축되었다면, 마스크의 픽셀들을 식별한다는 것이 이해될 것이다. 도 17 은 도 16 의 폴리라인 및 식별된 픽셀들을 도시한다. 이 단계는 폴리라인의 양측에 위치되는 2 개의 픽셀들로 이루어진 폴리라인의 보더를 생성하며, 이 2 개의 픽셀들 보더는 클로즈드 영역에 속하는 픽셀들의 식별을 더 쉽게 만든다; 클로즈드 영역들의 컴퓨테이션은 더 쉬워지고 폴리라인과 접촉한 픽셀들이 정확한 클로즈드 영역에 할당된다는 것을 보장한다.
그 후, 단계 S60 에서, 단계 S50 에서 식별되었던 각각의 픽셀이 이제 단계 S40 에서 컴퓨팅된 폴리라인의 그 픽셀에 대한 포지션을 나타내기 위해 마킹된다. 반대의 동작, 즉 각각의 픽셀에 대해 그 픽셀의 폴리라인에 대한 포지션을 결정하는 것이 이루어질 수 있다는 것이 이해될 것이다. 픽셀을 마킹하는 것은 정보가 픽셀에 추가된다는 것을 의미한다 : 추가적인 정보가 픽셀 데이터와 함께 저장될 수도 있고, 또는 그것은 새로운 데이터 구조에 저장될 수도 있다. 바람직하게는, 마킹은 픽셀 데이터와 함께 저장되며; 이것은 본 방법을 실행하는 시스템에 대한 최적의 컴퓨테이션 결과들을 제공한다.
폴리라인의 픽셀에 대한 포지션은 픽셀의 기준 점으로 추론된다. 픽셀의 좌측-하부 정점이 기준 점으로서 선택되고 참조되는 이미지에서의 좌표들 (a, b) 을 갖는다면 (통상 참조되는 이미지의 원점은 이미지의 좌측-하측에 위치한 픽셀의 좌측-하부 정점이다), 다른 정점들은 좌표 (a+1, b), (a, b+1), (a+1, b+1) 를 갖는다. 이 방식에 의해, 각각의 에지는 포지션, 즉 픽셀의 우측 에지, 또는 좌측 에지, 또는 상부 에지, 또는 하부 에지와 연관되는 한 쌍의 좌표들에 의해 정의된다. 폴리라인의 픽셀에 대한 포지션의 결정이 그러면 간단해진다 : (i) 폴리라인의 라인이 픽셀의 우측 에지라면, 폴리라인은 픽셀의 우측에 있다; (ii) 폴리라인의 라인이 픽셀의 좌측 에지에 있다면, 폴리라인은 픽셀의 좌측에 있다; (iii) 폴리라인의 라인이 픽셀의 상부 에지라면, 폴리라인은 픽셀의 상측에 있다; (iv) 폴리라인의 라인이 픽셀의 하부 에지라면, 폴리라인은 픽셀의 하측에 있다.
도 7 및 도 8 상에 도시된 실시형태에서, 마킹은 정보를 인코딩하기 위해 마스크의 RGBA 채널들을 이용함으로써 수행된다. 다르게 말하면, 마킹은 단계 S50 에서 식별된 각각의 픽셀을, 그 픽셀의 폴리라인에 대한 포지션에 따라 컬러링하는 것으로 이루어진다. 여기서, 두음문자 RGBA 는 Red Green Blue Alpha 컬러 공간을 지칭하며 여기서 각각의 컬러 (Red Green Blue) 및 불투명도 (A) 가 n 비트들에 의해 정의되며, 예를 들어, 하나의 픽셀의 RGBA 정보는 포지션을 인코딩하기 위한 채널 당 n=8 비트들에 대해 단일 32-비트 무부호 정수를 제공할 수 있다.
따라서, 제 1 RGBA 값 (예를 들어, 투명한 그린 R=0, G=255, B=0, A=0) 은 픽셀의 우측에 포지셔닝된 폴리라인을 나타내고; 제 2 RGBA 값 (예를 들어, 투명한 화이트 R=0, G=0, B=0, A=255) 은 픽셀의 좌측에 포지셔닝된 폴리라인을 나타내고; 제 3 RGBA 값 (예를 들어, 투명한 레드 R=255, G=0, B=0, A=0) 은 픽셀의 상측에 포지셔닝된 폴리라인을 나타내며; 제 4 RGBA 값 (예를 들어, 투명한 블루 R=0, G=0, B=255, A=0) 은 픽셀의 하측에 포지셔닝된 폴리라인을 나타낸다. RGBA 값을 이용하는 것은 픽셀을 컬러링하는 것에 이른다는 것을 이해한다. 따라서, 단계 S60 이 수행될 때, 마스크 (블랭크 이미지로서 초기화됨) 는 이제 폴리라인의 이들 픽셀들에 대한 포지션을 나타내는 컬러링되고 투명한 픽셀들을 포함한다.
흥미롭게도, 픽셀들을 마킹하는 프로세스는 누적된다. 이것은 픽셀이 수회 마킹될 수 있고 각각의 연속적인 마킹의 정보가 취출될 수 있다는 것을 의미한다. 예를 들어, 폴리라인이 픽셀의 상측 및 우측에 있다면, 픽셀은 2 회 마킹될 것이고, 마지막 마킹 (즉, 2 개의 마킹들의 결과) 은 폴리라인이 픽셀의 상측 및 우측에 있다는 정보를 제공할 것이다. 이 예에서, 제 3 RGBA 값이 픽셀의 상측에 포지셔닝된 폴리라인이 R=0, G=255, B=0, A=0 으로 설정된다는 것을 나타내고 제 1 RGBA 값이 픽셀의 우측에 포지셔닝된 폴리라인이 R=255, G=0, B=0, A=0 으로 설정된다는 것을 나타낸다면, 픽셀의 마킹은 R=255, G=255, B=0, A=0 으로 설정될 것이다. 픽셀은 이제 투명한 옐로우로 컬러링된다.
도 17 의 식별된 픽셀들은 컬러링된다 (여기서 컬러들은 각각의 픽셀에 기입된 디지트로 표현된다) : 블루의 픽셀들 (디지트 1 로 표현됨) 은 픽셀의 하측에 포지셔닝된 폴리라인을 나타내고, 레드의 픽셀들 (디지트 4 로 표현됨) 은 픽셀의 상측에 포지셔닝된 폴리라인을 나타내고, 라이트 블루의 픽셀들 (디지트 3 으로 표현됨) 은 픽셀의 하측 및 좌측에 포지셔닝된 폴리라인을 나타내며, 옐로우의 픽셀들 (디지트 2 로 표현됨) 은 픽셀의 상측 및 우측에 포지셔닝된 폴리라인을 나타낸다. 디지트 2 및 디지트 3 을 가진 픽셀들은 따라서 누적된 마킹을 가진 픽셀들이다.
그 후, 단계 S70 내지 단계 S100 에서, 이미지의 곡선 및 보더에 의해 범위가 정해진 모든 클로즈드 영역들이 컴퓨팅된다. 표현 모든 클로즈드 영역들은 하나 이상의 클로즈드 영역들이 컴퓨팅된다는 것을 수반한다. 클로즈드 영역은 사용자가 선택하길 원하는 이미지 상의 범위가 정해진 표면이며, 그 표면은 사용자에 의해 드로잉된 곡선으로부터 구축된 연속적인 폴리라인 및/또는 이미지의 보더로부터 구축된 연속적인 폴리라인에 의해 범위가 정해진다. 각각의 클로즈드 영역은 이미지의 하나의 다른 클로즈드 영역과는 독립적이다; 이것은 2 개의 클로즈드 영역들 간에 교차점이 없다, 즉, 이미지의 픽셀이 단지 하나의 클로즈드 영역에만 속할 수 있다는 것을 의미한다. 하나 이상의 클로즈드 영역들은 개별적으로 선택가능하며, 즉 하나의 클로즈드 영역의 선택은 제 2 클로즈드 영역의 선택을 수반할 수 없다. 클로즈드 영역을 컴퓨팅하는 것은 이미지의 픽셀들의 세트가 식별된다는 것을 의미하며, 여기서 그 세트의 각각의 픽셀들은 그 세트의 적어도 하나의 픽셀을 이웃으로서 갖는다.
이미지의 곡선 및 보더에 의해 범위가 정해진 모든 클로즈드 영역들의 컴퓨팅은 영역 성장 알고리즘을 이용함으로써 수행될 수 있다. 영역 성장은 시드 점이 선택되고 영역이 이 선택된 시드 점으로부터 성장하는 이미지 세그먼트화 방법이다. 영역은 선택된 시드 점의 이웃이 적어도 하나의 멤버십 기준을 준수한다면 성장할 수 있고, 이웃이 적어도 하나의 멤버십 기준을 준수할 때, 그것은 시드 점 그 자체로서 분류된다. 각각의 새로운 시드 점에 대해, 프로세스는 더 이상 체크할 시드 점이 없을 때까지 반복된다.
도 8 은 본 발명과 함께 이용될 수도 있는 영역 성장 알고리즘의 예를 예시한다. 영역 멤버십 기준은 선택된 픽셀의 이웃하는 픽셀이 폴리라인에 걸쳐 있지 않다는 것이다. 따라서, 영역 멤버십 기준은 폴리라인(들)에 걸쳐 있지 않은 이웃하는 픽셀들을 보존하는 것을 목표로 한다.
단계 S700 에서, 마스크의 픽셀이 선택된다. 선택된 픽셀은 본 방법의 이 단계에서 알려지지 않은 클로즈드 영역에 속한다.
이제 도 18 을 참조하면, 약간 수정된 도 17 의 마킹된 픽셀들 및 폴리라인이 2 개의 픽셀들 (184, 185) 및 폴리라인의 새로운 라인의 추가와 함께 도시되어 있다. 픽셀 (180) 의 하나가 선택되었고, 예를 들어, 픽셀의 랜덤 선택이 현재의 파티셔닝 방법을 실행하는 시스템에 의해 수행된다. 대안적으로, 사용자는 픽셀의 하나를 선택할 수도 있다.
도 8 로 돌아가면, 단계 S710 에서, 선택된 픽셀의 이웃하는 픽셀들이 이들 이웃하는 픽셀들 중 어느 것이 멤버십 기준을 충족하는지를 식별하기 위해 체크된다 : 이전에 구축된 폴리라인에 걸쳐 있는 단계 S700 에서 선택된 픽셀 (180) 의 이웃하는 픽셀들은 거부되고, 즉, 그들은 단계 S700 에서 선택된 픽셀이 속하는 현재의 클로즈드 영역에 속하지 않는 것으로 간주된다. 다르게 말하면, 폴리라인에 걸쳐 있지 않고, 따라서 선택된 픽셀의 클로즈드 영역에 속하지 않는 하나 이상의 이웃하는 픽셀들을 식별한다. 이웃하는 픽셀이 폴리라인에 걸쳐 있는지 여부의 결정은 선택된 픽셀에 대하여 이루어지는 것으로 이해될 것이다. 기준을 충족한 픽셀들의 식별은 따라서 거부된 픽셀들 (폴리라인에 걸쳐 있는 픽셀들) 을 식별하거나 또는 남겨질 픽셀들 (폴리라인에 걸쳐 있지 않은 픽셀들) 을 식별하는 것으로 이루어진다.
멤버십 기준의 검증은 바람직하게는 선택된 픽셀 상의 마킹을 이용함으로써 행해진다. 마스크 상의 선택된 픽셀이 블랭크라면, 이것은 그것의 에지들 중 하나도 폴리라인의 라인이 아니며, 따라서 그의 이웃하는 픽셀들 중 하나도 (선택된 픽셀에 대하여) 폴리라인에 걸쳐 있지 않다는 것을 의미한다. 마스크 상의 선택된 픽셀이 마킹된다면, 그 마킹은 폴리라인의 이 선택된 픽셀에 대한 포지션을 나타내며, 폴리라인의 라인으로서 이용된 에지를 공유하는 이웃하는 픽셀은 그것이 폴리라인에 걸쳐 있는 것으로 간주되기 때문에 폐기된다.
그 후, 단계 S720 에서, 단계 S710 에서 이전에 식별된 이웃하는 픽셀들이 현재의 선택된 픽셀과 동일한 방식으로 선택 및 취급될 예정인 픽셀들의 리스트에 추가된다. 이것은 영역 성장 알고리즘의 정확한 전파를 보장한다.
도 18 로 돌아가면, 픽셀 연결성은 이 예에서, (이미지의 보더 또는 마스크의 보더의 픽셀을 제외하고는) 이미지의 각각의 픽셀에 대한 4 개의 이웃하는 픽셀들에 대한 것이다. 따라서, 선택된 픽셀 (도 18 상의 해칭된 픽셀 (180)) 은 4 개의 이웃하는 픽셀들을 갖는다. 해칭된 픽셀은 컬러링되지 않고, 이는 픽셀 (180) 의 에지들 중 하나도 이전에 구축된 폴리라인의 라인을 포함하지 않는다는 것을 의미한다. 남겨질 픽셀들로서 식별된 픽셀들은 단계 S700 에서 선택된 픽셀과 동일한 방식으로 선택 및 취급될 픽셀들의 리스트에 추가된다 : 이 예에서, 선택된 픽셀 (180) 의 4 개의 이웃하는 픽셀들은 그들이 기준을 충족하기 때문에 리스트에 남겨지고 추가된다.
그 후, 단계 S730 에서, 선택된 픽셀은 체크된 것으로 마킹된다. 이것은 RGBA 채널들을 이용함으로써 행해질 수 있으며, 예를 들어, 픽셀은 블랙으로 컬러링된다. 마킹된 픽셀은 그 후 현재 컴퓨팅된 클로즈드 영역에 속하는 픽셀들의 리스트에 추가된다.
다음에, 단계 S740 에서, 새로운 픽셀이 단계 S720 에서 생성된 리스트로부터 선택된다. 이 픽셀은 단계 S710 에서 선택된 픽셀과 동일한 방식으로 취급된다. 따라서, 단계 S710 내지 단계 S740 이 이 픽셀에 대해 수행된다.
이제 도 19 를 참조하여, 이제 도 18 상에 도시된 이전에 선택된 픽셀 (180) 의 이웃하는 픽셀인 새롭게 선택된 픽셀 (182) 에 초점을 맞춘다. 이 픽셀 (182) 은 이전에 선택된 픽셀 (180) 과 동일한 방식으로 선택 및 취급될 픽셀들의 리스트에 추가되었다. 선택된 픽셀 (182) 은 블루로 마킹되며, 이는 (i) 폴리라인이 이 픽셀의 하측에 포지셔닝되고 (ii) 이웃하는 픽셀 (190) (디지트 2 로 표현 및 옐로우로 컬러링됨) 이 폴리라인에 걸쳐 있다는 것을 나타낸다. 따라서, 이 픽셀 (190) 은 거부되고 선택될 픽셀들의 리스트에 추가되지 않을 것이며, 따라서 그것은 단계 S700 에서 선택된 픽셀의 동일한 클로즈드 영역에 속하는 것으로 마킹되지 않을 것이다. 역으로, 2 개의 다른 이웃하는 픽셀들이 선택될 픽셀들의 리스트에 추가될 것이다; 픽셀 (180) 이 체크된 것으로 이미 마킹되었기 때문에 선택 및 취급될 픽셀들의 리스트에 추가되지 않는다는 것을 이해한다. 이 방식에 의해, 단계 S710 내지 단계 S760 의 반복은 솔루션에 컨버징할 수 있다.
도 8 로 돌아가면, 단계 S760 에서, 선택될 픽셀들의 리스트에서의 모든 픽셀들이 실제로 다루어졌다고 결정한다. 따라서, 리스트에 포함된 각각의 픽셀이 체크된 (예를 들어, 블랙으로 컬러링된) 것으로 마킹되지 않은 동안 단계 S710 내지 단계 S740 이 반복되었다 (S750).
이 프로세스 단계에서, 마스크는 이미지의 제 1 클로즈드 영역에 속하는 블랙으로 컬러링된 픽셀의 세트를 포함한다. 블랙으로 컬러링된 이들 픽셀들은 따라서 제 1 클로즈드 영역을 형성하는 픽셀들의 세트에 속한다. 이것은 도 20 상에 예시되며, 이는 도 18 의 식별된 픽셀들 및 폴리라인들을 도시하며, 여기서 폴리라인의 상측에 배치된 모든 픽셀들은 블랙으로 컬러링되었다. 흥미롭게도, 단계 S50 에서 식별되고 이하에 배치된 픽셀들은 이 프로세스 단계에서 언터칭된다 : 폴리라인과 접촉한 제 2 클로즈드 영역을 유사하게 컴퓨팅하기 위해 요구되는 픽셀들 상의 마킹은 바뀌지 않았다.
실제로, 그 클로즈드 영역이 컴퓨팅된 후, 이 새롭게 컴퓨팅된 클로즈드 영역의 픽셀들이 데이터 구조에 저장된다 (S100). 이 데이터 구조는 이미지의 각각의 픽셀에 대해, 그 각각의 픽셀이 속하는 클로즈드 영역을 저장한다. 이용된 데이터 구조는 당업계에 공지된 바와 같이, 쿼드트리 데이터 구조일 수 있다. 쿼드트리 데이터 구조는 바람직하게는 컴퓨팅된 클로즈드 영역에 대해 검색할 때의 성능들을 개선시킨다.
그 후, 제 2 클로즈드 영역에 속하는 새로운 픽셀이 마스크 상에서 선택된다 (단계 S770). 이 선택된 픽셀은 따라서 체크된 것으로 마킹되지 않는다, 예를 들어 블랙으로 컬러링되지 않는다. 이미지는 단지 하나의 클로즈드 영역을 포함할 수 있으며, 예를 들어, 사용자에 의해 드로잉된 곡선은 자기-교차하지 않거나 이미지의 보더를 적어도 2 회 교차하지 않아, 단지 이미지의 보더만이 클로즈드 영역을 생성한다는 것이 이해될 것이다.
그 후, 단계 S710 내지 단계 S760 은 제 2 클로즈드 영역이 컴퓨팅될 때까지, 즉 제 2 클로즈드 영역의 모든 픽셀들이 블랙으로 컬러링될 때까지 유사하게 반복된다. 그 후, 제 2 클로즈드 영역의 픽셀들은 제 1 컴퓨팅된 클로즈드 영역의 픽셀이 이미 저장되는 동일한 쿼드트리 데이터 구조에 저장된다.
마스크의 모든 픽셀들이 단계 S770 에서 마킹되지 않는 동안, 단계 S710 내지 단계 S760 이 반복된다.
다음에, 단계 S780 에서, 마스크의 모든 픽셀들이 블랙으로 컬러링되었다고 결정한다. 따라서, 모든 클로즈드 영역들이 컴퓨팅되었다. 이제부터, 그리고 마스크의 각각의 픽셀에 대해, 이미지 상의 그것의 대응하는 픽셀을 식별하고, 이미지의 픽셀들은 이전에 컴퓨팅된 클로즈드 영역들에 따라 그룹화된다.
이 단계 S780 은 쿼드트리 데이터 구조가 각각의 새롭게 컴퓨팅된 클로즈드 영역을 저장하기 위해 이용될 때 암시적으로 수행된다는 것이 이해될 것이다 : 실제로, 쿼드트리는 새롭게 발견된 클로즈드 영역에 속하는 픽셀들의 좌표들로 채워진다.
도 21 은 도 15 상에 표현된 연속적인 폴리라인들 (140, 142, 144, 151, 153, 155, 157) 로부터 컴퓨팅된 3 개의 클로즈드 영역들 (200, 222, 224) 을 예시한다.
이제 도 9 를 참조하면, 도 9 는 본 발명에 따라 파티셔닝된 여러 초기 이미지들로부터 새로운 이미지의 생성의 예를 도시하고 있다.
여러 이미지들은 디스플레이된 이미지들 중 하나 이상 상에 프리 형태를 드로잉하는 사용자에게 디스플레이된다. 동일하게, 그 이미지들은 나란히 디스플레이될 수도 있거나 그들은 부분적으로 또는 완전히 오버랩할 수도 있다. 사용자에 의해 드로잉된 곡선은 수정되지 않는 디스플레이된 이미지들 위에 표현된다.
그 후, 단계 S70 을 참조하여 설명된 바와 같이 컴퓨팅된 클로즈드 형상들의 존재가 검출된다. 이미지의 보더는 고려될 수 있거나 고려되지 않을 수 있는 클로즈드 영역을 생성한다. 예를 들어, 사용자에 의해 드로잉된 곡선이 자기-교차하지 않거나 이미지들의 보더를 적어도 2 회 교차하지 않는 이벤트에서, 단지 이미지들의 보더들만이 하나 이상의 클로즈드 영역들을 생성한다. 그것은 이들 클로즈드 영역들이 사용자에게 보여지지 않거나, 또는 역으로 사용자에게 보여진다고 결정될 수 있다.
클로즈드 영역들은 그 후 사용자에게 보여진다. 이것은 제한이 아닌 예를 들어 각각의 클로즈드 영역의 특정 렌더링으로 수행될 수 있으며, 여기서 픽셀들의 특정 렌더링은 각각의 클로즈드 영역의 보더를 형성하며, 등등이다. 이 단계에서, 이미지가 커팅된다. 이것은 이미지들의 각각의 픽셀에 대해, 상기 각각의 픽셀이 속하는 클로즈드 영역을 저장하는 (쿼드트리 데이터 구조를 이용하여 저장될 수도 있는) 최종 마스크를 이용함으로써 수행된다.
그 후, 사용자는 이미지의 하나 이상의 클로즈드 영역들을 선택했다. 이 선택은 당업계에 공지된 바와 같이 수행되며, 예를 들어, 사용자는 마우스의 커서를 선택될 클로즈드 영역(들) 위로 이동시키고 마우스를 클릭하여 시스템에 이 미지의 이 서브 부분을 선택할 것을 명한다.
새로운 이미지가 그 초기 이미지를 수정하지 않고, 그 클로즈드 영역들 각각에 대해 생성된다. 이것은 각각의 선택된 서브 부분들의 픽셀들의 새로운 이미지에의 복사로 수행될 수 있다.
그 후, 사용자는 프로세스를 중단할 수 있고, 또는 그는 초기 이미지들이 현재의 파티셔닝 방법에 의해 수정되지 않기 때문에 추가 선택들을 수행할 수 있다.
본 발명의 바람직한 실시형태가 설명되었다. 본 발명의 사상 및 범위로부터 벗어남 없이 다양한 수정들이 이루어질 수도 있다는 것이 이해될 것이다. 따라서, 다른 구현들은 다음의 청구항들의 범위 내에 있다.

Claims (15)

  1. 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법으로서,
    - 보더 (border) 를 포함하는 이미지를 디스플레이하는 단계 (S10);
    - 상기 이미지 위에 곡선을 드로잉하는 단계 (S20);
    - 상기 이미지의 상기 곡선 및 상기 보더에 의해 범위가 정해진 모든 클로즈드 영역들을 컴퓨팅하는 단계로서, 각각의 클로즈드 영역은 다른 컴퓨팅된 클로즈드 영역들과는 독립적이고 개별적으로 선택가능한, 상기 모든 클로즈드 영역들을 컴퓨팅하는 단계를 포함하는, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 이미지 위에 곡선을 드로잉하는 단계 후 :
    상기 이미지 위에 드로잉된 상기 곡선으로부터 연속적인 폴리라인을 구축하는 단계 (S40);
    - 상기 연속적인 폴리라인을 형성하는 각각의 라인에 대해, 상기 각각의 라인을 에지로서 갖는 디스플레이된 상기 이미지의 픽셀들을 식별하는 단계 (S50) 를 더 포함하는, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법.
  3. 제 2 항에 있어서,
    상기 연속적인 폴리라인을 구축하는 단계 (S40) 는 :
    - 상기 이미지 위에 드로잉된 상기 곡선의 2 개의 별개의 종료 점들을 링크시키는 픽셀들의 세트를 컴퓨팅하는 단계로서, 상기 세트의 이웃하는 픽셀들은 공동으로 에지를 갖는, 상기 픽셀들의 세트를 컴퓨팅하는 단계;
    - 연속적인 폴리라인을 구축하는 단계로서, 상기 폴리라인의 각각의 라인은 컴퓨팅된 상기 픽셀의 세트의 픽셀들 중 하나의 픽셀의 에지인, 상기 연속적인 폴리라인을 구축하는 단계를 포함하는, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법.
  4. 제 3 항에 있어서,
    디스플레이된 상기 이미지의 픽셀들을 식별하는 단계 (S50) 후 :
    - 각각의 식별된 픽셀을 마킹하는 단계로서, 상기 마킹은 폴리라인의 상기 각각의 식별된 픽셀에 대한 포지션을 나타내는, 상기 각각의 식별된 픽셀을 마킹하는 단계를 더 포함하는, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법.
  5. 제 4 항에 있어서,
    상기 각각의 식별된 픽셀을 마킹하는 단계는 각각의 식별된 픽셀을 RGBA (Red Green Blue Alpha) 컬러 공간으로 인코딩된 컬러로 컬러링하는 단계 (S60) 에 의해 수행되며 :
    - 제 1 RGBA 값은 상기 픽셀의 우측에 포지셔닝된 폴리라인을 나타내고;
    - 제 2 RGBA 값은 상기 픽셀의 좌측에 포지셔닝된 폴리라인을 나타내고;
    - 제 3 RGBA 값은 상기 픽셀의 상측에 포지셔닝된 폴리라인을 나타내며;
    - 제 4 RGBA 값은 상기 픽셀의 하측에 포지셔닝된 폴리라인을 나타내는, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법.
  6. 제 5 항에 있어서,
    각각의 픽셀의 상기 컬러링은 누적되는, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법.
  7. 제 4 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 이미지의 상기 곡선 및 상기 보더에 의해 범위가 정해진 모든 클로즈드 영역들을 컴퓨팅하는 단계는 픽셀의 영역 멤버십 기준이 상기 연속적인 폴리라인에 걸쳐 있는 것이 아닌 영역 성장 알고리즘을 이용함으로써 수행되는, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법.
  8. 제 7 항에 있어서,
    상기 영역 성장 알고리즘은 :
    (i) 제 1 클로즈드 영역들에 속하는 상기 이미지의 제 1 픽셀을 선택하는 단계;
    (ii) 선택된 상기 픽셀 상의 상기 마킹을 이용함으로써 상기 기준을 충족하는 선택된 상기 제 1 픽셀의 이웃하는 픽셀들을 식별하는 단계;
    (iii) 단계 (ii) 에서 식별된 각각의 이웃하는 픽셀을 선택된 상기 제 1 픽셀로서 선택 및 취급될 픽셀들의 리스트에 추가하는 단계;
    (iv) 선택된 상기 제 1 픽셀을 체크된 것으로 마킹하고 선택된 상기 제 1 픽셀을 상기 제 1 클로즈드 영역들에 속하는 픽셀의 리스트에 추가하는 단계;
    (v) 선택될 상기 픽셀들의 리스트에서 제 2 픽셀을 선택하고 상기 제 2 픽셀에 대해 상기 단계 (ii) 내지 단계 (iv) 를 수행하는 단계;
    (vi) 선택될 상기 픽셀들의 리스트의 모든 픽셀들이 선택될 때까지 상기 단계 (v) 를 반복하는 단계를 포함하는, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법.
  9. 제 8 항에 있어서,
    (vii) 제 2 클로즈드 영역에 속하는 상기 이미지의 제 3 픽셀을 식별하는 단계로서, 상기 제 3 픽셀은 단계 (iv) 에서 마킹되지 않은, 상기 이미지의 제 3 픽셀을 식별하는 단계;
    (viii) 상기 단계 (ii) 내지 단계 (vi) 을 수행하는 단계;
    (ix) 상기 이미지의 모든 픽셀들이 체크된 것으로 마킹될 때까지 상기 단계 (vii) 내지 단계 (viii) 을 반복하는 단계를 더 포함하는, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법.
  10. 제 2 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 연속적인 폴리라인을 구축하는 단계에서 시작하여 수행된 상기 단계들은 마스크 상에 수행되며, 상기 마스크는 디스플레이된 상기 이미지와 동일한 사이즈 및 동일한 수의 픽셀들을 가진 이미지인, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법.
  11. 제 9 항과 조합한 제 10 항에 있어서,
    상기 마스크는 블랭크 이미지로서 초기화되고 체크된 것으로 마킹된 상기 픽셀들은 클로즈드 영역들에 속하는 픽셀의 리스트에 추가될 때 블랙으로 컬러링되는, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법.
  12. 제 1 항 내지 제 11 항 중 어느 한 항에 있어서,
    컴퓨팅된 상기 클로즈드 영역들은 쿼드트리 데이터 구조에 저장되는, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법.
  13. 제 1 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 모든 클로즈드 영역들을 컴퓨팅하는 단계 후 :
    - 적어도 하나의 클로즈드 영역을 개별적으로 선택하는 단계;
    - 선택된 각각의 클로즈드 영역에 대해 독립적인 이미지를 생성하는 단계를 더 포함하는, 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법.
  14. 제 1 항 내지 제 13 항 중 어느 한 항에 기재된 이미지를 파티셔닝하기 위한 컴퓨터 구현 방법을 수행하기 위한 명령들을 포함하는 컴퓨터 프로그램.
  15. 메모리 및 그래픽 사용자 인터페이스에 커플링된 프로세스를 포함하는 시스템으로서,
    상기 메모리는 제 14 항에 기재된 컴퓨터 프로그램을 기록하고 있는, 시스템.
KR1020150162070A 2014-11-18 2015-11-18 이미지의 파티셔닝 KR20160059452A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP14306826.0 2014-11-18
EP14306826.0A EP3023935B1 (en) 2014-11-18 2014-11-18 Partitioning an image

Publications (1)

Publication Number Publication Date
KR20160059452A true KR20160059452A (ko) 2016-05-26

Family

ID=52016539

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150162070A KR20160059452A (ko) 2014-11-18 2015-11-18 이미지의 파티셔닝

Country Status (6)

Country Link
US (1) US9875555B2 (ko)
EP (1) EP3023935B1 (ko)
JP (1) JP6863675B2 (ko)
KR (1) KR20160059452A (ko)
CN (1) CN105844609B (ko)
CA (1) CA2912251A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108921854B (zh) * 2018-05-22 2022-06-21 复旦大学 一种消化道内镜图像不规则病变区域标注方法及系统
CN111899316B (zh) * 2020-08-07 2024-04-09 武汉大学 一种地层结构的二维地层网格数字化编辑方法及装置
CN112396698B (zh) * 2020-11-20 2023-03-28 上海莉莉丝网络科技有限公司 游戏地图内地图区域边界的划定方法、系统及计算机可读存储介质
CN112948607A (zh) * 2021-01-29 2021-06-11 北京城建勘测设计研究院有限责任公司 应用于岩土工程勘察行业的自动分图方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2639878B1 (fr) * 1988-12-01 1991-01-11 Cebal Procede de decoration d'une ebauche a conformer, utilisation de ce procede et produits obtenus
US5657436A (en) * 1995-06-08 1997-08-12 Hewlett-Packard Company Preprocessing apparatus and method for line scan conversion in a computer graphics system
JPH10191020A (ja) * 1996-12-20 1998-07-21 Canon Inc 被写体画像切出し方法及び装置
AU2003278520A1 (en) * 2002-11-20 2004-06-15 Koninklijke Philips Electronics N.V. Computer-aided detection of lung nodules
US7149354B2 (en) * 2002-12-12 2006-12-12 Intel Corporation Extraction of a scene structure based on gradient runs analysis
US7144114B2 (en) * 2004-04-06 2006-12-05 Susannah Lawrence Systems and methods for displaying simulated images
US7570732B2 (en) * 2005-11-09 2009-08-04 Dexela Limited Methods and apparatus for obtaining low-dose imaging
US8411115B1 (en) * 2006-10-23 2013-04-02 Adobe Systems Incorporated Scaling raster objects in a graphical development enviroment using nine-slice scaling
US9013499B2 (en) * 2007-07-19 2015-04-21 Disney Enterprises, Inc. Methods and apparatus for multiple texture map storage and filtering including irregular texture maps
CN100470589C (zh) * 2007-12-06 2009-03-18 武汉大学 一种接缝线网络的自动生成方法
US8315479B1 (en) * 2008-02-26 2012-11-20 Adobe Systems Incorporated Slicing and scaling figures
EP2286384B1 (en) * 2008-05-28 2012-06-27 Apple Inc. Defining a border for an image
EP2199981A1 (en) * 2008-12-09 2010-06-23 Koninklijke Philips Electronics N.V. Image segmentation
JP2010257315A (ja) * 2009-04-27 2010-11-11 Canon Inc 情報処理装置、情報処理方法及びプログラム
JP5666239B2 (ja) * 2010-10-15 2015-02-12 シャープ株式会社 情報処理装置、情報処理装置の制御方法、プログラム、および記録媒体
JP2012129685A (ja) * 2010-12-14 2012-07-05 Fuji Xerox Co Ltd 画像処理装置及びプログラム
US8584052B2 (en) * 2010-12-22 2013-11-12 Taiwan Semiconductor Manufacturing Company, Ltd. Cell layout for multiple patterning technology
CN102270299B (zh) * 2011-08-24 2013-06-12 复旦大学 由断点出发可并行实现的边缘连接算法
US9111140B2 (en) * 2012-01-10 2015-08-18 Dst Technologies, Inc. Identification and separation of form and feature elements from handwritten and other user supplied elements
JP5849206B2 (ja) * 2013-03-27 2016-01-27 パナソニックIpマネジメント株式会社 画像処理装置、画像処理方法、及び画像処理プログラム
CN104103061A (zh) * 2013-04-07 2014-10-15 深圳市蓝韵实业有限公司 医学x线图像的分割方法及系统
CN103400365A (zh) * 2013-06-26 2013-11-20 成都金盘电子科大多媒体技术有限公司 肺区ct序列自动分割方法

Also Published As

Publication number Publication date
CA2912251A1 (en) 2016-05-18
JP2016100016A (ja) 2016-05-30
CN105844609A (zh) 2016-08-10
JP6863675B2 (ja) 2021-04-21
CN105844609B (zh) 2020-10-16
US20160140723A1 (en) 2016-05-19
EP3023935B1 (en) 2019-02-27
US9875555B2 (en) 2018-01-23
EP3023935A1 (en) 2016-05-25

Similar Documents

Publication Publication Date Title
CN112347546A (zh) 基于轻量级设备的bim渲染方法、设备和计算机可读存储介质
KR20160059452A (ko) 이미지의 파티셔닝
CN102779358A (zh) 用于设计几何三维建模对象的方法
CN109118588B (zh) 一种基于块分解的彩色lod模型自动生成方法
Gyulassy et al. Direct feature visualization using Morse-Smale complexes
JP6646395B2 (ja) 情報処理装置及びその方法、情報処理システム、コンピュータプログラム
CN103838829A (zh) 一种基于分层次边界拓扑搜索模型的栅格转矢量系统
CN104616356B (zh) 一种小班边界三维可视化编辑方法
Shan et al. Interactive visual exploration of halos in large-scale cosmology simulation
CN106998489B (zh) 一种焦点越界搜索方法及装置
CN115952252B (zh) 基于动态渲染的语义瓦片数据处理方法、装置和电子设备
WO2023239799A1 (en) Systems and methods for efficient rendering and processing of point clouds using textures
CN107704483A (zh) 一种三维模型的加载方法
CN106780693B (zh) 一种通过绘制方式选择三维场景中物体的方法及系统
CN105653881A (zh) 基于多密度层次的流场可视化方法
KR101782816B1 (ko) 트리맵 시각화 방법 및 그 방법을 이용하는 장치
CN114612599A (zh) 倾斜摄影实景三维模型的批量单体化方法、系统、设备和存储介质
Glander et al. Concepts for automatic generalization of virtual 3D landscape models
CN111612869B (zh) 一种基于栅格数据进行地质编图的分析方法
Shen et al. Raster-based method for building selection in the multi-scale representation of two-dimensional maps
Li et al. Construct boundaries and place labels for multi-class scatterplots
CN112966041A (zh) 数据处理方法、装置、设备及存储介质
US20230297734A1 (en) Voxel-based approach for design models
US20230298291A1 (en) Voxel-based approach for design models
CN104036535A (zh) 二维地理信息系统中的矢量快速拣选方法