DrawTool 다 중 펜 의 전주 = > InkAnalyzer 를 통 해 도형 인식 실현
7718 단어 tool
ps: InkAnalyzer 를 통 해 간단 한 도형 인식 을 실현 하 는 것 은 그리 깊 은 기술 이 아 닙 니 다. InkANalyzer 를 제외 하고 기 존의 알고리즘 을 통 해 필적 에서 도형 으로 의 식별 전환 을 실현 할 수 있 습 니 다. 다만 우 리 는 window 플랫폼 에서 일 할 때 Net 기술 을 사용 하여 바퀴 를 중복 만 들 필요 가 없습니다.이 글 은 사실 Drawtool 도구 의 작은 기능 중 하나 가 바로 도형 인식 펜 이다.drawtool 의 경우 붓, 형광 펜, 플래시 펜, 붓, 무늬 펜 등 을 갖 춰 야 할 뿐만 아니 라 도형 인식 펜 의 지원 도 필요 하 다.
코드 가 상대 적 으로 간단 합 니 다. 관련 유형의 사용 은 msdn 을 참고 할 수 있 습 니 다. 이것 은 당신 의 가장 좋 은 파트너 입 니 다.
사용자 정의 도형 에 대한 식별 은internalAnalyzer 함수 에서 drawingNode. GetShapeName 이 되 돌아 오 는 이름 이 other 일 때 필적 에 따라 분석 한 것 은 점 분석 알고리즘 의 응용 입 니 다.
/// <summary>
///
/// </summary>
public class ShapeRecogniser
{
public InkAnalyzer _inkAnalyzer = null;
private ShapeRecogniser()
{
this._inkAnalyzer = new InkAnalyzer
{
AnalysisModes = AnalysisModes.AutomaticReconciliationEnabled
};
}
/// <summary>
///
/// </summary>
/// <param name="strokeCollection"></param>
/// <returns></returns>
public string Recognition(StrokeCollection strokeCollection)
{
if (strokeCollection == null)
{
MessageBox.Show("dddddd");
return null;
}
string result = null;
try
{
this._inkAnalyzer.AddStrokes(strokeCollection);
if (this._inkAnalyzer.Analyze().Successful)
{
result = _internalAnalyzer(this._inkAnalyzer);
this._inkAnalyzer.RemoveStrokes(strokeCollection);
}
}
catch (System.Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
return result;
}
/// <summary>
/// ,
/// Shape
/// </summary>
/// <param name="ink"></param>
/// <returns></returns>
private string _internalAnalyzer(InkAnalyzer ink)
{
try
{
ContextNodeCollection nodecollections = ink.FindNodesOfType(ContextNodeType.InkDrawing);
foreach (ContextNode node in nodecollections)
{
InkDrawingNode drawingNode = node as InkDrawingNode;
if (drawingNode != null)
{
return drawingNode.GetShapeName();
}
}
}
catch (System.Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
return null;
}
private static ShapeRecogniser instance = null;
public static ShapeRecogniser Instance
{
get
{
return instance == null ? (instance = new ShapeRecogniser()) : instance;
}
}
}
응용 은 간단 합 니 다. 모든 프로그램 에 InkCanvas 를 추가 한 다음 마우스 up 이나 적당 하 다 고 생각 하 는 곳 에서 Shape Recogniser 의 Recognition 방법 을 호출 한 다음 돌아 오 는 도형 의 이름 에 따라 해당 하 는 shape 를 생 성 할 수 있 습 니 다.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Gif 위젯: "페인트 잇 블랙"템플릿에는 에서 도구 모음 앱을 만드는 데 필요한 모든 것이 포함되어 있습니다. 오늘 우리는 "Paint it Black"위젯을 분해할 것입니다. 이것은 도구 모음에 고정하는 매우 기본적인 위젯입니다. "Paint ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.