Implementierungshinweise für Segmentierungsfilter
Es ist wichtig, die Eigenschaften zu beachten, die der Segmentierungsfilter in jedes untergeordnete Element festlegt, das er erstellt. Diese Eigenschaften sind : WIA_IPS_XPOS, WIA_IPS_YPOS, WIA_IPS_XEXTENT, WIA_IPS_YEXTENT und möglicherweise WIA_IPS_DESKEW_X und WIA_IPS_DESKEW_Y. Diese Eigenschaftswerte entsprechen der Position des Elements auf dem Flachbett, nicht im Bild, das an den pInputStream-Parameter übergeben wird.
Daher ist es für den Segmentierungsfilter wichtig, die WIA_IPS_XPOS, WIA_IPS_YPOS und WIA_IPS_ROTATION Eigenschaften des übergebenen Bilds genau zu beachten.
Angenommen, eine Anwendung führt eine Vorschauüberprüfung durch, bei der WIA_IPS_XPOS = WIA_IPS_YPOS = 200 in das (übergeordnete) Element festgelegt wird, bevor das Vorschaubild abgerufen wird. Anschließend wird der Segmentierungsfilter aufgerufen, um mögliche Unterregionen zu erkennen. Der tatsächliche Algorithmus, der im Segmentierungsfilter verwendet wird, wirkt sich jedoch auf das Bild aus, das an ihn übergeben wird. Wenn dieser Algorithmus eine Unterbereichsecke 150 Pixel rechts vom linken Bildrand und 200 Pixel unten vom oberen Bildrand erkennt, entspricht dies tatsächlich einem Punkt, der sich bei (350, 400) auf dem Scanner befindet.
In der folgenden Abbildung stellt der äußere Bereich das Scanner-Flachbett dar. Obwohl der Algorithmus die Koordinaten der oberen linken Ecke des Bereichs als (150, 200) angibt, sind die Werte, die der Segmentierungsfilter in das untergeordnete Element für WIA_IPS_XPOS und WIA_IPS_YPOS festlegen sollte, 350 und 400.
Wenn eine Anwendung beispielsweise die vom Segmentierungsfilter erkannten Regionen visuell anzeigt, muss sie beachten, dass der Segmentierungsfilter die Koordinaten festlegt, die ihrer Position im Flachbett entsprechen. Dies bedeutet, dass die Anwendung die Flachbettkoordinaten den Koordinaten im Vorschaubild zuordnen muss. In den meisten Fällen führt eine Anwendung jedoch eine Vorschauüberprüfung mit WIA_IPS_XPOS = WIA_IPS_YPOS = 0 und ohne Drehung (WIA_IPS_ROTATION = PORTRAIT) durch. Wenn dies der Fall ist, erfolgt eine direkte Zuordnung zwischen den Koordinaten auf dem Flachbett und denen im Vorschaubild.
Eine weitere Eigenschaft, auf die der Segmentierungsfilter achten muss, ist die Rotationseigenschaft WIA_IPS_ROTATION, sofern der Treiber diese Eigenschaft implementiert. Angenommen, die Anwendung legt beim Abrufen des Vorschaubilds WIA_IPS_ROTATION auf ROT180 fest. In diesem Fall entspricht die linke obere Ecke des Bilds, die in den Segmentierungsfilter übergeben wird, tatsächlich der unteren rechten Ecke auf dem Flachbett. Daher muss der Segmentierungsfilter die Koordinaten jeder Teilregion, die er im gedrehten Bild erkennt, den Koordinaten auf dem Flachbett zuordnen. Nachdem der Segmentierungsfilter diese Zuordnung ausgeführt hat, kann er WIA_IPS_XPOS, WIA_IPS_YPOS und andere Eigenschaftswerte in das untergeordnete Element festlegen, das dem Unterimage entspricht.
Beachten Sie, dass in den meisten Fällen WIA_IPS_XPOS und WIA_IPS_YPOS auf Null und WIA_IPS_ROTATION auf PORTRAIT festgelegt werden. Die Segmentierung sollte jedoch in der Lage sein, einen Fall zu behandeln, in dem sie nicht auf diese Werte festgelegt sind.
Beachten Sie außerdem, dass eine Anwendung zwar ein Bild an den Segmentierungsfilter übergeben kann, der vom Treiber gedreht wurde, sie jedoch kein Bild übergeben darf, für das das Entfernen bereits ausgeführt wurde.