Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst VB2008 Inhalt aus gescannter PDF TIF erkennen

Mitglied: 69304

69304 (Level 1)

25.02.2010, aktualisiert 10:56 Uhr, 5897 Aufrufe, 5 Kommentare

Hallo Leute!

Besteht die Möglichkeit, aus einem gescannten Dokument (liegt im PDF- oder TIF-Format vor) einen Bereich "einzulesen" und dann anhand diesem Bereich (falls dieser z.B. schwarz ausgemalt ist) einen Rückgabewert zu erzeugen in Form eines Bool-Wertes?



Es geht um eine Workflow-Programmierung.

User sollen auf einem Blatt Papier Kästchen "anmalen" können und über einen MFP-Kopierer in ein Verzeichnis scannen können.

Die PDF oder TIF soll dann von dem VB-Programm verarbeitet werden und dann z.B. irgendwelche SQL- oder Copy-Anweisungen ausgeführt werden.
Mitglied: RedWraith
04.03.2010 um 13:50 Uhr
Hi !

Ein TIF Format ist doch eine Bilddatei oder ?

Die könnte man in VB.NET einlesen und dann könnte man auf dem so erzeugten Bitmap eine Art Bilderkennung laufen lassen.

Ein Codebeispiel kann ich dir leider nicht liefern, aber das Schwierigste daran dürfte sein, die Kästchen auf dem Bild
zu "finden". Aber ich bin sicher, dass es dafür irgendwo eine Art Algorythmus gibt. Wenn du weißt, wo sich die Kästchen
befinden, musst du nurnoch prüfen, ob Sie ausgemalt sind.

Dafür müsste man eigendlich nur den Bildbereich, in dem ein Kästchen gefunden wurde, darauf überprüfen,
ob der Großteil des Bildbereichs Schwarz, bzw. Nicht-Weiß ist.

Natürlich hängt das davon ab, wie gut die eingescannte Qualität ist, ich stelle mir vor, dass bei einem reinen
S/W Scan das Ganze deutlich einfacher ist, als bei einer hochauflösenden Farbkopie.

Achja, von der PDF für ich dir abraten. PDFs sind eigendlich als Eyes-Only gedacht und lassen sich so gut wie garnicht
maschinell bearbeiten.
Bitte warten ..
Mitglied: 69304
04.03.2010 um 14:07 Uhr
Ein TIF Format ist doch eine Bilddatei oder ?
Jupp.

Die könnte man in VB.NET einlesen und dann könnte man auf dem so erzeugten Bitmap eine Art Bilderkennung laufen lassen.
Ja hat vielleicht jemand hier sowas?!?

Dafür müsste man eigendlich nur den Bildbereich, in dem ein Kästchen gefunden wurde, darauf überprüfen,
ob der Großteil des Bildbereichs Schwarz, bzw. Nicht-Weiß ist.

Natürlich hängt das davon ab, wie gut die eingescannte Qualität ist, ich stelle mir vor, dass bei einem reinen
S/W Scan das Ganze deutlich einfacher ist, als bei einer hochauflösenden Farbkopie.
Genau so habe ich es mir vorgestellt!
Bitte warten ..
Mitglied: RedWraith
04.03.2010 um 14:49 Uhr
Ich werd mich mal schlau machen. Ich kenne jemanden,
der hat mit komplexeren Algorythmen direkt zu tun, mal sehen, was der sagt.

EDIT: Besagte Person ist im Urlaub. Pech.

EDIT2: Ich hab ein Tutorial gefunden, ist aber nicht ganz ohne: http://rn-wissen.de/index.php/Bildverarbeitung_Tutorial
Bitte warten ..
Mitglied: 69304
29.03.2010 um 08:19 Uhr
Hmm.. Danke erstmal.

Aber das Bild ist schon schwarz/weiss. Das ist nicht das Problem.


Das Problem liegt eher darin, wie ich in VB2008 das Bild in einem Programmteil "erkennen" lasse, bzw. "einlese".
Bitte warten ..
Mitglied: 69304
01.04.2010 um 16:49 Uhr
Ich habs

Bin eigentlich eher durch Zufall darauf gestoßen

Wenn jemand interesse hat, kann ich ihm das komplette Paket als Zip zuschicken.


Aber hier zumindest mal ein Denkanstoß, falls jmd das selbe Problem hat:

Benötigt wird:

- Form1
- Label1
- Label2
- Label3
- PictureBox1

01.
Imports System.Drawing.Imaging
02.
Imports System.Runtime.InteropServices
03.

04.
Public Class Form1
05.
    Private bm As Bitmap
06.

07.
    Protected Sub SetIndexedPixel(ByVal x As Integer, ByVal y As Integer, ByVal bmd As BitmapData, ByVal pixel As Boolean)
08.
        Dim index As Integer = y * bmd.Stride + (x >> 3)
09.
        Dim p As Byte = Marshal.ReadByte(bmd.Scan0, index)
10.
        Dim mask As Byte = &H80 >> (x And &H7)
11.
        If pixel Then
12.
            p = p Or mask
13.
        Else
14.
            p = p And CByte(mask ^ &HFF)
15.
        End If
16.
        Marshal.WriteByte(bmd.Scan0, index, p)
17.
    End Sub 'SetIndexedPixel
18.

19.
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
20.
        Dim X As Integer = 0
21.
        Dim Y As Integer = 0
22.
        Dim Schwellwert As Integer = 200
23.
        Dim Farbe As Color
24.
        Dim Wert1 As Integer = 0
25.
        Dim Wert2 As Integer = 0
26.
        Dim Wert1Check As Boolean = False
27.
        Dim Wert2Check As Boolean = False
28.

29.
        Dim ofd As New OpenFileDialog
30.
        ofd.InitialDirectory = "C:\Temp"
31.
        ofd.Filter = "JPG (*.jpg)|*.jpg| BMP (*.bmp)|*.bmp"
32.
        ofd.Title = "Wählen Sie eine Datei zum Öffnen aus"
33.
        If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then
34.

35.
            Dim img As Bitmap = CType(Image.FromFile(ofd.FileName), Bitmap)
36.
            'Ensure that it's a 32 bit per pixel file
37.
            If img.PixelFormat <> PixelFormat.Format32bppPArgb Then
38.
                Dim temp As New Bitmap(img.Width, img.Height, PixelFormat.Format32bppPArgb)
39.
                Dim g As Graphics = Graphics.FromImage(temp)
40.
                g.DrawImage(img, New Rectangle(0, 0, img.Width, img.Height), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel)
41.
                img.Dispose()
42.
                g.Dispose()
43.
                img = temp
44.
            End If
45.
            Me.PictureBox1.Image = img
46.
            'lock the bits of the original bitmap
47.
            Dim bmdo As BitmapData = img.LockBits(New Rectangle(0, 0, img.Width, img.Height), ImageLockMode.ReadOnly, img.PixelFormat)
48.

49.
            'and the new 1bpp bitmap
50.
            bm = New Bitmap(Me.PictureBox1.Image.Width, Me.PictureBox1.Image.Height, PixelFormat.Format1bppIndexed)
51.
            Dim bmdn As BitmapData = bm.LockBits(New Rectangle(0, 0, bm.Width, bm.Height), ImageLockMode.ReadWrite, PixelFormat.Format1bppIndexed)
52.

53.
            'scan through the pixels Y by 
54.
            For Y = 0 To img.Height - 1
55.
                For X = 0 To img.Width - 1
56.
                    'generate the address of the colour pixel
57.
                    Dim index As Integer = Y * bmdo.Stride + X * 4
58.

59.
                    'check its brightness
60.
                    If Color.FromArgb(Marshal.ReadByte(bmdo.Scan0, index + 2), Marshal.ReadByte(bmdo.Scan0, index + 1), Marshal.ReadByte(bmdo.Scan0, index)).GetBrightness() > 0.5F Then
61.
                        Me.SetIndexedPixel(X, Y, bmdn, True) 'set it if its bright.
62.
                    End If
63.
                Next X
64.
            Next Y
65.

66.
            'tidy up
67.
            bm.UnlockBits(bmdn)
68.
            img.UnlockBits(bmdo)
69.

70.
            'display the 1bpp image
71.
            Me.PictureBox1.Image = bm
72.

73.

74.
            For Y = 200 To 280 Step 1
75.
                For X = 150 To 220 Step 1
76.
                    Farbe = bm.GetPixel(X, Y)
77.
                    If Farbe.Name = "ff000000" Then
78.
                        Wert1 += 1
79.
                    End If
80.
                Next X
81.
            Next Y
82.

83.
            For Y = 300 To 360 Step 1
84.
                For X = 150 To 220 Step 1
85.
                    Farbe = bm.GetPixel(X, Y)
86.
                    If Farbe.Name = "ff000000" Then
87.
                        Wert2 += 1
88.
                    End If
89.
                Next X
90.
            Next Y
91.

92.
            If Wert1 > Schwellwert Then
93.
                Wert1Check = True
94.
            End If
95.
            If Wert2 > Schwellwert Then
96.
                Wert2Check = True
97.
            End If
98.

99.
            Label1.Text = "Erste Box (Wert): " & Wert1 & " (" & Wert1Check & ")"
100.
            Label2.Text = "Zweite Box (Wert): " & Wert2 & " (" & Wert2Check & ")"
101.
            Label3.Text = "Schwellwert: " & Schwellwert
102.

103.
        Else
104.
            MsgBox("Abbruch")
105.
            Close()
106.
            End
107.
        End If
108.
    End Sub
109.
End Class
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Tif Datei per Konsole in PDF umwandeln
gelöst Frage von linguinBatch & Shell8 Kommentare

Hallo Zusammen, Ich habe einen PC (WinXP SP3) und eine FJ4120c Scanner! Beim Drücken der Scan Taste auf dem ...

E-Mail

Outlook Plugin EMail-inhalt als PDF erstellen

Frage von AvantFighterE-Mail3 Kommentare

Hallo, ich suche ein Outlook Plugin, das mit den Inhalt einer Email in eine PDF erstellt und diese mit ...

Grafik

Tif-Dateien mit mehreren Frames drehen

gelöst Frage von imebroGrafik15 Kommentare

Hallo, wir erhalten seit kurzer Zeit Faxe in digitaler Form. Diese kommen in unserem Outlook im Tif-Format an. Dabei ...

Windows Tools

PDF mit Inhalt von Labeln, trennen und automatisch bennen

Frage von BotpennerWindows Tools3 Kommentare

Hallo Freunde, ich habe eine PDF-Datei in der sich Versandlabel´s befinden. Leider bekommen wir immer nur eine Datei wo ...

Neue Wissensbeiträge
Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 4 TagenWindows 72 Kommentare

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 6 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 7 TagenMicrosoft Office9 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 9 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Notebooks in Firmenwlan authentifizieren
gelöst Frage von EarthShakerLAN, WAN, Wireless17 Kommentare

Guten Tag, unsere Firma möchte gerne flächendeckend WLAN einführen und hat zu diesem Zweck einen Dienstleister beauftragt. Wir benötigen ...

Peripheriegeräte
PS2 Y-Kabel für Maus+Tastatur an PS2 Combo-Anschluss ASUS Prime X370-A
gelöst Frage von Windows10GegnerPeripheriegeräte13 Kommentare

Hallo, ich bin am Überlegen das o.g. Motherboard anzuschaffen. Da ich aber noch PS/2 für Maus+Tastatur benötige (bei optischen ...

Windows 10
Netzlaufwerk verschwindet (aber nur bestimmter Laufwerksbuchstabe)
gelöst Frage von survial555Windows 1010 Kommentare

Hallo, ich habe ein ganz seltsames Problem. Systemumgebung: Server 2012 R2 als DC und Windows 10 Pro als Clients ...

Netzwerkmanagement
Netzwerk vorübergehend weg
Frage von ahstaxNetzwerkmanagement10 Kommentare

Hallo, folgendes Szenario stellt sich dar: Im Netzwerk mit Win7-PCs wurden Switche ausgetauscht. Grundsätzlich funktioniert alles mindestens so gut ...