WO2014206394A2 - Computerimplementierter digitaler unschärfefilter zur erzeugung eines einem falsch fokussierten linsensystem entsprechenden unschärfeeindrucks in einem digital in einem bild-speicher ursprünglich vorliegenden bild - Google Patents

Computerimplementierter digitaler unschärfefilter zur erzeugung eines einem falsch fokussierten linsensystem entsprechenden unschärfeeindrucks in einem digital in einem bild-speicher ursprünglich vorliegenden bild Download PDF

Info

Publication number
WO2014206394A2
WO2014206394A2 PCT/DE2014/000334 DE2014000334W WO2014206394A2 WO 2014206394 A2 WO2014206394 A2 WO 2014206394A2 DE 2014000334 W DE2014000334 W DE 2014000334W WO 2014206394 A2 WO2014206394 A2 WO 2014206394A2
Authority
WO
WIPO (PCT)
Prior art keywords
image
computer
digital
blurred
buffer
Prior art date
Application number
PCT/DE2014/000334
Other languages
English (en)
French (fr)
Other versions
WO2014206394A9 (de
WO2014206394A3 (de
Inventor
Friedemann WACHSMUTH
Richard Case
Original Assignee
menschmaschine Publishing GmbH
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 menschmaschine Publishing GmbH filed Critical menschmaschine Publishing GmbH
Priority to DE112014002999.8T priority Critical patent/DE112014002999A5/de
Publication of WO2014206394A2 publication Critical patent/WO2014206394A2/de
Publication of WO2014206394A3 publication Critical patent/WO2014206394A3/de
Publication of WO2014206394A9 publication Critical patent/WO2014206394A9/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/2621Cameras specially adapted for the electronic generation of special effects during image pickup, e.g. digital cameras, camcorders, video cameras having integrated special effects capability
    • 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

Definitions

  • Computer-implemented digital blur filter for generating a blur impression corresponding to a false-focused lens system in a digital image originally stored in an image memory
  • the present invention relates to a computer-implemented digital blur filter for generating a blur impression corresponding to a mis-focused lens system in an image originally digitally stored in an image memory, and an associated computer system and computer program (product).
  • the invention solves the problems of the known prior art described in which it allows to provide any photos already present subsequently and selectively with lifelike blurring.
  • the methods used here require very manageable computing capacities and have been optimized especially for use on graphic co-processors, as they are commonly used today in smartphones and digital cameras.
  • a convolution formula (convolution) with a shaped filter core is used, in which the shape of the filter core corresponds to the desired shape of the circle of confusion. If f * g is the convolution of the filter kernel f with a color channel of the image g, then each pixel of f * g, (f * g) (n) is defined approximately by the following convolution formula for each pixel n:
  • f (x) indicates the value of the filter kernel at the pixel (c - x)
  • g (x) indicates the value of the color channel of the image at pixel x, where the value of x rounded to the next smallest integer is, and ⁇ ⁇ is the filter kernel width, f h is the filter kernel height, g w is the image width, and g h is the image height.
  • a typical Ausfe typi of the invention also provides that the user can select the shape of the applied filter core itself or fesdegen to make the simulation of a false-focused lens system blur impression such that he could change the shape of the iris of the simulated optical system ( and thus the shape of the circle of confusion) itself.
  • the quality of the result often helps when the user selects that area or those areas of the source image that represent the motive ground and are not supposed to appear blurred or completely out of focus.
  • These motifs are usually aligned largely parallel to the recording medium objects, such as persons, a face, trees or the like.
  • One very quick and easy way to mark such a motive ground is by using appropriate methods, such as the computer-implemented method and / or system of recognizing a user-selected stroke input object, using pixels in a digital image (hereinafter also referred to as the present method) or system) and, for example, when using a touch-sensitive screen often already by simply or repeatedly stroking with the finger to accomplish.
  • appropriate methods such as the computer-implemented method and / or system of recognizing a user-selected stroke input object, using pixels in a digital image (hereinafter also referred to as the present method) or system) and, for example, when using a touch-sensitive screen often already by simply or repeatedly stroking with the finger to accomplish.
  • the image area thus defined by the user now preferably represents the motive ground. This is copied into a separate buffer with a transparent alpha channel. At the same time a copy of the original original image is made, which is worked up to the motif background.
  • an ideal result can be achieved, above all, if the user defines one or more blur curves in the image that represent the spatial depth of the motif. In a two-dimensional photograph without further meta-information on object distances, etc., it is generally only possible to determine with a limited degree of certainty which distances had certain motif areas to the recording plane.
  • the invention therefore preferably provides for the user to have defined one or more blurring profiles which represent the depth information in the depicted motif.
  • the invention provides for automatically prepositioning such blur progressions as correctly as possible, whereby the size, position and shape of the marked motive ground can be taken into account.
  • an evaluation of further recording and motif information is provided by the invention, such as focal length and iris aperture of the taking lens, angle of inclination of the camera at the time of acquisition, suspected object distance and analysis data of the autofocus-sharpness search process, if available electronically.
  • the present invention provides that the motive ground, preferably stored in a buffer B j c in the memory, can lie within or outside the virtual sharpness zone.
  • the motive ground preferably stored in a buffer B j c in the memory
  • the Motiworderground of the invention is not changed, but initially stored only in a selection picture for themselves.
  • the invention preferably employs a multistage process which, depending on the technical possibilities of the system used, can proceed sequentially or in parallel.
  • a sequential embodiment according to the present invention will be described.
  • the image area representing the foreground is replaced with the aid of a so-called inpainling routine-preferably in parts-fully automatically.
  • inpainling routine for this purpose, surrounding motif structures are extrapolated until the selected image area representing the foreground has been reduced to such an extent that no image pixels of the foreground motif remain in the subsequent uncertainty calculation even at the maximum blur radius more into the calculation of background uncertainty.
  • the result of this routine is copied to a buffer B iaf in memory.
  • n copies of B ili are generated, which are stored accordingly in the memory.
  • a convolution with a disk-shaped filter kernel is applied to each of these copies, the size of the filter kernel in each subsequent copy preferably being increased linearly until the largest defined filter kernel size is applied in the nth copy.
  • a typical embodiment of the invention provides that the intensity of the maximum uncertainty to be calculated can be freely selected by the user, thereby enabling the simulation of different subject depths, object distances, iris apertures and focal lengths.
  • the circle of confusion (which is so called, but need not be a circle, but also other shapes such as the one Disc, a cross, a heart or the like) to reproduce emerging so-called "Bokehflecken"
  • the subject on so-called highlights - ie bright (usually smaller) areas in the image which are above a certain luminance threshold - to
  • the threshold for highlight recognition can be freely selected by the user in order to adapt the number of detected highlights to the motif conditions, preferably to exclude very bright dot-shaped image areas resulting from overexposure of the original image from the simulation of the bokeh slices.
  • a high-pass filter is applied to the luminance values of the image stored approximately in the buffer ⁇ , ⁇ area of the memory, which isolates the highlights of the scene and again preferably in a buffer B H in the memory transferred.
  • the present invention preferably envisages optionally excluding image regions represented by the buffer B g from the filtering if the recognition of highlights behind the foreground object, in particular highlighting caused by the so-called inpainting, is undesirable.
  • n-1 copies B H2 to B H are now in the memory n-1 copies B H2 to B H "created.
  • the convolution formula with disc-shaped filter core is now also applied to these buffers, wherein the size of the filter kernel is preferably linearly increased in each subsequent copy, until the largest defined filter kernel size is applied to copy B Hu .
  • the buffer B ⁇ is preferably copied to the result of BHbl r by means of alpha mapping, with which the end result of the operation is available there.
  • a so-called outpainting method is preferably used instead of a so-called inpainting method for generating approximately Bi p Motiforderground increased without changing the magnification of the imaged object.
  • the result of this operation is then preferably transferred to a buffer B ouip .
  • the convolution with disc-shaped filter core now becomes approximately also applied to B mip and the result is preferably converted to B. b .
  • a typical embodiment of the invention provides that the alpha value with which the results be faded into one another, freely selected by the user can be adapted to adapt the simulation of the blur impression corresponding to a wrongly focused lens system to differently reflecting motifs.
  • the following description relates to a computer-implemented method and system for recognizing an object marked by stroke input of a user based on pixels in a digital image (hereinafter also referred to as the present method or system) which is preferably used in the context of the present invention, preferably for the selection and / or exemption of an image area in a digitally present in a memory image, but also as an independent invention in itself has meaning and is usable:
  • the post-processing of digital image data is today a process that is part of the photographic workflow.
  • modern cameras automatically optimize the photos to be stored with complex algorithms to compensate for optical errors such as chromatic aberration or distortions.
  • digital photos are also processed individually by the photographer.
  • the well-known functionality of corresponding camera software includes common editing and correction functions such as global settings for brightness, contrast, color saturation or white balance (light temperature). Adjustment functions for micro-contrast enhancement, re-sharpening, softening or simulation of the shearing plane shift according to Scheimpflug's law (so-called "tilt-shift effect”) are also commonly used for editing an entire photo Complex, automatically cascaded processing steps the image elaborate post-processing (examples: sepia implementation, nostalgia filter, simulation of specific properties of chemical film or simulation of special chemical development processes.)
  • a fundamental problem compared to the processing on the PC is thus the fact that smart phones and cameras with smartphone functionality and form factor, the usual input devices such as mouse or graphics tablet are missing and the size of the screen is extremely limited. It is thus only very limited possible to selectively edit an image with sufficient precision.
  • the process of selecting an area to be processed is also basically a time-consuming, complex endeavor, which can usually only be done by the professional at the appropriately equipped PC in many individual steps and with high computational effort.
  • Performing the object recognition using the pixels corresponding to the stroke input of the user and the pixels in the perimeter range for each pixel within the perimeter range, whether it is closer to the outer edge of the perimeter range or closer to the pixels in terms of a selected metric H that corresponds to the stroke input of the user, wherein a pixel within the perimeter range is determined to belong to the object to be recognized if it is closer in terms of the selected metric to the pixels corresponding to the stroke input of the user
  • a pixel within the perimeter range is not determined to belong to the object to be detected if it is closer to the perimeter of the perimeter area with respect to the selected metric, and thus all pixels of the object marked by the user's stroke input are detected.
  • the user can first roughly trace the desired subject area or the desired object, which can usually be accomplished with a single finger prank ("stroke") on a mobile device with a touch-sensitive display but also by means of another input device, such as a mouse or a trackball or the like, the user can concretize his range selection with further simple strokes, if necessary, due to complex object shapes or imprecise strokes
  • Method or system works very fast and allows the user an interactive use, which leads to the target in no time.
  • a stroke with this tool on the displayed digital image - such as the photo shown - preferably sets the so pre-marked areas by a color highlighting
  • the effective radius (perimeter range) of the tool used for the marking is preferably slightly larger in diameter than the tip of a forefinger, so that the he can immediately see where (and that) he marks an area (perimeter area) in the image.
  • the pre-marked area is preferably processed as input according to the method for object recognition in digital images, the correspondingly marked object is recognized with its pixels in the image and preferably also again a transparent or semi-transparent colored deposit - visually presented.
  • the color highlighting of the preselected area is preferably replaced by a differently colored highlight that represents the object detected.
  • the user can iteratively concretize and correct the range mark already calculated by additional stroke gestures or by means of a touch-sensitive display, be it by means of a conventional input interface, such as a mouse.
  • the present method or system preferably provides here a further processing tool that has the reverse effect of the previously described painting tool, namely a so-called 'erasure erug'.
  • the user can preferably also iteratively concretize and correct his range selection with the aid of this tool, whereby the strokes respectively effected with this tool lead to a corresponding reduction of the area mark.
  • the present method or system preferably now allows the user to arbitrarily zoom into corresponding motif details at any time with the known so-called "j-inch gesture" (movement of two fingertips on the touch screen away from or towards each other).
  • j-inch gesture movement of two fingertips on the touch screen away from or towards each other.
  • this can also be done by means of conventional input interfaces (input devices), such as a mouse with a radar for zooming or else a touchpad or even the keyboard.
  • the user can move the current visible cut-out as needed.
  • the present method or system here preferably sees a so-called 'panning Ges' (shifting two lying at a largely constant distance fingertips on the Touch screen) as well as a dedicated so-called panning work ⁇ eug (also called H.and-Toof).
  • the combination of pinch and panning gesture is preferably fluent and allows a quick, intuitive selection of the nachzube.den range selection.
  • a straw refers to a two-dimensional shape defined by, for example, a completed gesture of the user on the touch-sensitive display.
  • the pixels in the digital image corresponding to the stroke input of the user are determined, which is a relatively 'thin' line - such as from the fingertip (or sharpener) used for this purpose. tapered any touch tool for the touch-sensitive display). Then the pixels in the image are determined, which are in a selectable perimeter area
  • - preferably a selectable radius - are around the range of pixels corresponding to the user's stroke input, which is preferably done taking into account the respective representation scale.
  • the object recognition process begins.
  • this object recognition process for example, when using a correspondingly powerful computer-can preferably also begin parallel to the execution of the straw, for instance by means of the aforementioned gesture of painting (so-called online object recognition process).
  • the computer used to execute the object recognition method is not powerful enough for stroke parallel object recognition - the computer used is preferably for some time (pending) during the now-proceeding steps of the object recognition method the current state of the art at the time of the present application for a few fractions of a second) for further input by the user.
  • the memory areas (buffers) to be processed by the present method for recording the digital images may include a very large amount of pixels. Since the computing time required for object recognition increases with the number of these pixels, it may be advantageous to determine the corresponding areas of the memory. Using a scaling factor s (with s ⁇ 1), chers, which are used to capture the digital image data, scale to a maximum of w pixels. If the memory areas each contain less than w pixels, s-1 is selected. The implementation of the present method allows a free choice of w, so that depending on the available computing power w can be chosen such that an acceptable processing time for object recognition is achieved.
  • the actual object recognition is done using the pixels in the digital image that correspond to the stroke input of the user and the pixels of the digital image that are in the perimeter range, ie by means of the pixels of the digital image, such as after the completion of the painting gesture. as described above.
  • the basic principle of the novel object recognition presented here is that it is determined for each pixel within the perimeter area whether it is closer to the outer edge of the perimeter area or closer to the pixels corresponding to the stroke input of the user with respect to a selected metric.
  • a pixel within the perimeter range is closer in terms of the selected metric to the pixels that correspond to the stroke input of the user (for example, the 'thin' line caused by touching the fingertip with the touch-sensitive display at the straw), as at the outer edge of the perimeter area, this pixel is determined to belong to the object to be recognized.
  • a pixel within the perimeter range is closer to the outer edge of the perimeter region than the pixels corresponding to the stroke input of the user, then that pixel is determined not to belong to the object to be recognized.
  • the determination of whether a pixel from the perimeter range is closer to the outer edge of the perimeter region or closer to the pixels corresponding to the stroke input of the user with respect to a selected metric is preferably by means of an algorithm for determining the shortest paths with respect to the selected metric in an edge-weighted graph, where the pixels in the perimeter range including the pixels at the perimeter of the perimeter and the pixels corresponding to the stroke input of the user form the nodes of the graph and the weights of the edges of the graph connecting the vertices are spaced between the corresponding pixels in terms of the selected metric.
  • Dijkstra's known algorithm is used, which can determine a shortest path between a given start node and one or all of the remaining nodes in the edge-weighted graph.
  • other algorithms may be used to create shortest paths in edge weighted graphs, such as the algorithms of Bellman-Ford, Moore, Floyd, etc. 8th
  • the length of the shortest path between a pixel corresponding to the stroke input of the user or a pixel at the outer edge of the perimeter region is preferable to determine the length of the shortest path between a pixel corresponding to the stroke input of the user or a pixel at the outer edge of the perimeter region as a start node and all nodes of the perimeter area.
  • the node is selected whose distance sum with respect to the selected metric on the associated to this node and hitherto found shortest path over all intermediate Node in the graph to this node is the smallest from the selected starting point.
  • the node selected next on the respective shortest path to be found can be determined by means of a Fibonacci heap used for this purpose, the key of which is the distance total with respect to the selected metric, the shortest path associated with the respective node over all intermediate distances. lying node in the graph towards this node from the selected starting point.
  • a Fibonacci heap makes the use of the aforementioned Dijkstra algorithm even more efficient.
  • both the distance in terms of the selected metric between any two pixels corresponding to the stroke input of the user as well as the distance between any two pixels at the outer edge of the perimeter area is set to zero with respect to the selected metric.
  • the edges of the edge-weighted graph correspond to the pixels corresponding to the stroke input and thus lie in the middle of the object to be recognized as a kind of single center of the object to be recognized-to some extent as an interior of the object to be recognized Object - weighted and viewed and, on the other hand, the pixels on the perimeter of the perimeter are also considered to be a single equally weighted secure exterior to the object to be detected.
  • pixels that correspond either to the user's stroke input or to the outside edge of the perimeter region may also alternately act as the respective startup node during execution of the Dijkstra algorithm.
  • determining the respective shortest path leading to a node it is then determined whether that particular shortest path originates from a pixel as the start node, which corresponds to the stroke input of the user or originates from a pixel as the start node located on the outer edge of the user Perimeter area. This makes it possible to perform the determination of all short paths for the pixels in the perimeter area in parallel with respect to the distance (in terms of the selected metric) to the outer edge of the perimeter area and to the pixels corresponding to the user's stroke input inside the object.
  • each node of the graph belonging to a pixel is then marked as to whether the shortest path leading to it and determined leads to the outer edge of the perimeter or to the pixels which correspond to the strobe input of the user and therefore to the inside of the object He belongs in every case.
  • a bilateral filter is also preferably provided. This is applied to the digital image, whereby the size of the because the filter kernel used is chosen, preferably in proportion to the number of pixels of the digital image. The proportional choice of the size of the filter kernel provides uniform and consistent smoothing regardless of the actual dimensions of the digital image.
  • the Euclidean distance between the two colors of the pixels is used by the respective Farbkomponentenanteile- preferably about red, green and blue component components - are used as coordinates in the three-dimensional space R 3 , whereby a geometric (Euclidean) distance between the two - corresponding to the respective pixels - points in the space R 3 can be determined.
  • Each of the two points in the three-dimensional space corresponds to the color of its associated pixel in the digital image, which consists of the, corresponding to the three dimensions of the room color components and their concrete proportions for each pixel determine the location of the point in space R 3 .
  • other metrics can also be used, preferably if they are suitable for imaging similarities of the image information.
  • a special feature of the present method is the adaptive precision of the object recognition. It causes the function to work in always the same, high speed regardless of the size of the currently visible image section ("ZoomleveF").
  • zoomleveF the size of the currently visible image section
  • a reduction of the visible image section (higher zoom level) merely increases the precision of the detection of complex edges, the area selection that may iteratively produce using different zoom levels basically has the resolution corresponding to the original image.
  • An advantage of the adaptive recognition precision is that the signal-to-noise ratio is always optimized. Very fine image details such as sensor noise or very finely drawn motif structures are not considered in high zoom levels (such as an initial overall view of the image) for calculating the area mark. However, if the user wishes to be able to detect such details in certain areas of the subject (eg for precise Detection of hair or strands of hair), the recognition accuracy is preferably specified by the adaptively selected zoom level for editing.
  • the present method or system thus allows for the first time directly on a camera smartphone or a camera with smartphone functionality targeted objects of a subject or freely selected subject areas within a few seconds with a few steps to mark and subsequently selectively edit accordingly, without quality losses in To have to buy.
  • a camera smartphone or a camera with smartphone functionality targeted objects of a subject or freely selected subject areas within a few seconds with a few steps to mark and subsequently selectively edit accordingly, without quality losses in To have to buy.
  • it significantly contributes to performance enhancement, for example in the context of object recognition in image processing, by massively reducing the duration of this object recognition compared with the methods known from the prior art.
  • the aim of the method for object recognition is to ensure the best possible object recognition at the highest possible speed.
  • the user can already come to the goal with just a so-called 'stroke'.
  • complex shapes such as hair or lattice structures
  • the user can zoom in on the image as desired and increase the accuracy of the object recognition used (proportionally) accordingly.
  • a computer here preferably a smartphone
  • assigns the pixels which correspond to the strobe input (s) of the user to the object to be recognized as well all pixels of the object marked by the user's stroke input (s) of a digital image stored in a region of a memory of a computer are recognized, whereby the correspondingly recognized object is also marked in the memory and preferably selectively and thus independently of the pixels of the digital image that do not belong to the object - can be further processed digitally.
  • 1a shows the image, which is originally present digitally in a picture memory, with a continuous sharpness from the foreground to the infinite
  • 1 b shows a selection region of the original image selected by means of a digital marking, preferably by a so-called stroke input on a touch-sensitive screen, this selection region being released from the image components outside its boundaries and preferably stored as a selection image has been,
  • Fig. 2a shows a first of a plurality of differently blurred images obtained by using a plurality of different sized circles of confusion resulting from different sized filter cores; and wherein for each image value of each color channel of each point of the original image using a convolution formula with a filter kernel the shape of a desired optical circle of confusion (which is so called, but need not necessarily be circular), a new image value has been generated and a blurred image has been obtained from the digitally generated new image values as a result,
  • Fig. 2b shows a second of a plurality of differently blurred images obtained by using a plurality of differently sized scattering circles resulting from differently sized filter cores, the second image being blurred due to the use of a larger filter kernel which also creates a larger circle of confusion the first picture is,
  • FIG. 2c shows a third of a plurality of differently blurred images obtained by using a plurality of different sized circles of confusion resulting from filter cores of different sizes, the third image being due to the use of a large filter cell.
  • FIG. filter core which also causes a larger circle of confusion, is blurred than the second image,
  • d is a fourth of several differently blurred images obtained by using a plurality of different sized circles of confusion resulting from different sized filter cores, the fourth image being blurred than the third due to the use of a larger filter core which also creates a larger circle of confusion Picture is,
  • e is a fifth of a plurality of differently blurred images obtained by using a plurality of different sized circle circles resulting from different sized filter kernels, the fifth image being blurred than the fourth due to the use of a larger filter kernel also causing a larger circle of confusion Picture is,
  • a is a first of several different fuzzy highlight images obtained by high-pass filtering obtained by using a plurality of different sized circle circles resulting from different sized filter cores, and for each image value of each color channel of each point of the original image using a convolution formula a filter core which has the form of a desired optical circle of confusion (which is so called, but need not necessarily be circular), a new image value has been generated, and a blurred highlight image has been obtained from the digitally generated new image values as a result,
  • b is a second of several, differently blurred highlight images, which by using several different sized circle circles, which are of different sizes Resulting from the use of a larger filter core, which also causes a larger circle of confusion, the second image is blurred than the first image,
  • Fig. 4c shows a third of several differently blurred highlight images obtained by using a plurality of different sized circles of confusion resulting from different sized filter cores, the third image due to the use of a larger filter core which also causes a larger circle of confusion, more blurred than the second picture is,
  • Figure 4d shows a fourth of several differently blurred highlight images obtained by using a plurality of different sized circles of confusion resulting from different sized filter cores, the fourth image being blurred due to the use of a larger filter core which also introduces a larger circle of confusion the third picture is,
  • FIG. 4e shows a fifth of a plurality of differently blurred highlight images obtained by using a plurality of different sized circles of confusion resulting from different sized filter cores, the fifth image being blurred due to the use of a larger filter kernel which also introduces a larger circle of confusion the fourth picture is,
  • FIG. 4f shows a sixth of a plurality of differently blurred highlight images obtained by using a plurality of different sized circle circles resulting from filter cores of different sizes, the sixth image due to the use of a larger filter core which also creates a larger circle of confusion blurred than the fifth picture is,
  • FIGS. 4a to 4f show the digitally-preferably by means of an alpha-blended-blinded images according to FIGS. 4a to 4f as the blending result of the blurred highlight images
  • FIG. 6 shows the intermediate result of the fuzzy highlight image resulting from the interlacing of the fuzzy highlight image, which has already been created by merging the images according to FIGS. 4a to 4f, with the already blurred and stored new fuzzy image, which itself is also shown by the digital interlacing of the images according to FIG. 2a until 2f emerged, was obtained shows the final result, which in turn resulted from the merging of the images of Fig. 6 with the separately stored selection image of Fig.
  • FIG. 1 a has been produced by the inventive computer-implemented digital blur filter according to the present invention, and which produces a blur indentation corresponding to that which a focussed lens system would accordingly produce, and FIG
  • FIG. 8 and 9 shows an image as the final result, as it has been created by the fading of the images of FIG. 8 and 9. and subsequently also non-limitatively illustrate embodiments of the computer-implemented method and / or system for detecting an object marked by stroke input of a user based on pixels in a digital image:
  • FIG Diagram exemplarily different devices and a network connecting them, as described in the present case as an embodiment,
  • a terminal receives and processes a user's strokes, performs object recognition, performs filter or effect functions, and finally represents the result of the entire operation
  • 15 shows a process detail as a flow chart for receiving and processing user strokes, referred to below as the stroke input process
  • FIG. 16 shows a process detail as a flowchart for executing the object recognition, also referred to below as an object recognition process
  • FIG. 17 shows an example of a process detail as a flowchart for generating a (graph-theoretic) cost network of pixels, in which a routing algorithm for the identification of object pixels is applied,
  • FIG. 20 is a graphic illustration of the contents of buffers R, D, B, P and W; FIG.
  • 21 is a graphic illustration of the contents of the buffer R, the application of a Gaussian filter to the same and the application of a ramp threshold function to the result,
  • FIG. 22 shows a process as a flowchart in which a terminal receives and processes finger strokes of a user and also performs an object recognition in parallel;
  • FIG. 25 is an exemplary illustration of the user interface of an embodiment in which user fingerprints are received as input and processed to detect objects
  • FIG. 26 is an exemplary illustration of the user interface of an embodiment in which the user's finger prick was received as input for deleting an image area not belonging to the object.
  • FIG. 27 shows by way of example the user interface of an exemplary embodiment in which the result of the action executed in FIG. 16 is shown.
  • 11 shows, as a network and device diagram, exemplary different devices, as described in this document as an embodiment.
  • a camera 140, a mobile terminal 120, and a personal computer 130 are shown as interconnected, with the connections either directly and / or via a network 150, such as an Ethernet network, the Internet (which could also be connected drahdos), and or may be a wireless network based on GSM, TDMA, CDMA, EDGE, HSPA, UMTS, LTE or other standards offered by a wireless technology provider.
  • the direct connection between the devices may be represented by network connections (similar to the aforementioned network 150) and / or by Bluetooth TM, USB or similar device-to-device connections.
  • the camera 140, the mobile terminal 120, and personal computer 130 are similar computing devices, such as their user interface, the network 150 to which they connect, and / or the hardware and software for inputting and outputting data.
  • the camera 140, the mobile terminal 120, and the personal computer 130 are hereinafter referred to as "service equipment” hereinafter referred to as "terminal.”
  • a terminal is illustrated in Fig. 12. Examples of terminals include digital cameras, personal computers, laptop computers, tablet computers, smart phones , e-readers or similar computer devices. Terminals are used by "users".
  • Connection to the network 150 may require the terminal to execute software routines that, for example, service the up to seven necessary layers of the OSI model for networking computers.
  • Network 150 involves computers, network connections between computers, and software routines that enable communication between computers over such network connections.
  • a terminal includes data structures that represent a digital photograph. This data structure will hereinafter be referred to as "buffer I” (shown as element 305 “buffer I” in Fig. 13).)
  • a terminal may either be used to directly record itself the digital photograph to be processed, or the digital photograph of one second terminal after it has been transmitted to the first terminal or handed over.
  • the terminal executes various software routines, such as a stroke input process 500, an object recognition process 600, and / or a filter / effect process 260.
  • the stroke input process 500 is used to compose strokes. Capture inputs that a user has typically generated by touching in the form of a finger touch on a touch screen or by other input methods (such as fingers, stylus, mouse, trackball, control crosses or gestures or the like). These stroke inputs communicate the user's intention to identify certain pixel areas within the buffer I 305 as including an object.
  • pixel may hereinafter designate, depending on the context, both the position of a pixel within a buffer and the color information encoded in the pixel, for example, if two pixels in two different buffers are "corresponding ", it should be understood that both pixels occupy the same position in their containing buffer.
  • the vertical dashed line in Fig. 20 illustrates this correspondence between the pixels in five different buffers.
  • pixel buffers may be either one dimensional (such as an alpha channel buffer) or multi-dimensional (such as a buffer containing RGB data). In general, the nature of the respective buffer results from the context of the description: For example, describing that a pixel is given the value 1 indicates that the description of a one-dimensional buffer.
  • Buffer dimensionality is a parameter that may vary depending on the embodiment of the present method as long as the underlying goal is achieved; For example, a multi-dimensional buffer can also be treated as a one-dimensional buffer.
  • the buffers hereinafter referred to as buffer 330, buffer B 320, buffer D 325, buffer P 315, and buffer M 335 are one-dimensional; the buffers W 310 and buffer I 305, on the other hand, are meliorimensional.
  • the object recognition process 600 identifies one or more pixel objects within the pixel set that is the output of the stroke input process 500. These pixel objects are stored in buffer M (referenced as "buffer M" 335 in Fig. 13) 335.
  • the pixels corresponding to pixels in buffer M 335 in buffer I 305 may be altered by one or more filter / effect processes 260
  • the pixels in buffer I 305 corresponding to pixels in buffer M 335 may also be extracted and used as a standalone image independent of buffer I 305.
  • the terminal 200 includes at least a processor 210, terminal memory 250, a display 240, and a user input 245, all connected to the network interface 230 via the bus 220.
  • the processor unit 210 may consist of one or more common CPUs 212 as well as of one or more application-specific GPUs (Graphical Processing Units) 214 or a combination thereof.
  • the components of the processor unit 210 may also be used by the operating system 255 to perform various functions requested by routines of the terminal.
  • the network interface 230 may be used to make connections to the network 150 or direct device connections to other terminals.
  • the terminal memory 250 usually includes RAM (Random Access Memory), ROM (Read Only Memory), and a mass storage medium such as a hard disk or flash memory.
  • the terminal memory 250 stores program code and software routines such as the stroke input process 500, the object recognition process 600, the filter / effect process 260, but also, for example, digital photo taking, digital image management, and / or digital image data processing (of where the filter / effect process 260 may be a subroutine), browser, email and server routines, but also client or database applications as described below.
  • the terminal memory 250 also includes the operating system 255.
  • the terminal 200 may also include hardware that specifically supports user input 245, such as a touch screen, a camera, a keyboard, a mouse, a stylus, a microphone, acceleration sensors, and the like.
  • This hardware can also be designed as a display 240 at the same time, such as in the case of a touchscreen that reacts interactively to contact with fingers or a stylus.
  • the terminal 200 may also use a bus 220 to communicate with the terminal data memory 300.
  • the bus 220 may be a high-speed serial bus, a direct-access DMA, a DAS ("Direct Attached Storage"), SAN ("Storage Area Network" or other desirable means that may also include the network interface 230.
  • the terminal 200 may also contain many more components than shown in some embodiments, but it is not necessary to illustrate all of these components to illustrate the described solution.
  • the terminal 200 comprises data groups for routines, such as the stroke input process 500, the object recognition process 600 and the filter / effect process 260. Further data groups for other routines, such as a web browser or a web server, may also be provided on a terminal 200 be present and executed. Browser routines can provide, for example, an interface with which one can interact with other terminals according to FIG. 11, but also with other, remote terminals. Web browsers and web servers are exemplified herein as technology for providing a user interface, and they may also be replaced by equivalent techniques that enable display and provision of information on a device, such as native applications ("apps") on mobile devices.
  • apps native applications
  • FIG. 13 is the functional block diagram of the terminal data memory 300 as also referenced in FIG.
  • the components of the terminal data memory 300 are data groups that are used differently by the routines described below.
  • the data groups used by the routines illustrated in Figure 13 may be represented as a cell in a column or as a stand-alone value in a defined structure within a digital document or file. Although generally referred to below as a single record or entry, entries may also include more than one database entry.
  • the data sets can be numbers, numerical operations, binary values, logical values, matrices, be, represent, or encode text, strings, string operators, composite values, case-dependent logic, tests, or similar data structures.
  • step 405 the terminal receives a digital photograph or access to one whose pixel data included therein will hereinafter be referred to as buffer I 305.
  • Buffer I 305 is illustrated as element 805 in FIG. 18 (element 900, which is also illustrated in FIG. 18, is not part of buffer I 305).
  • the buffer I 305 can now be displayed for example by a corresponding display routine on the display 240 of the terminal.
  • the terminal receives and processes user strokes (finger pricks) by the stroke input process 500, as detailed in FIG. 15.
  • the stroke input process 500 receives input from a user moving their finger on a touch screen ("finger prick") or other user input (such as stylus, mouse, gestures, etc.). These stroke inputs communicate the user's intention to describe those pixels in buffer I 305 that represent an object. As described below, the pixels so identified can be visually highlighted in the display 240, such as by coloring, changing the luminance, a line drawn, or similar optical methods.
  • the terminal performs the pixel object detection using, for example, the object recognition process 600, which is explained in detail in the description of FIG.
  • the object recognition process 600 identifies one or more color edge demarcated pixel objects (hereafter referred to as "objects") that are proximate those pixels that describe the result of the stroke input process 500.
  • objects are stored in a mask buffer ("buffer M", illustrated as element 335 in FIG. 13), which can be handled independently of buffer I 305.
  • the terminal receives a filter or effect selection, such as provided by the user using the filter / effect process 260.
  • filters and effects include adjustment of brightness, contrast, color saturation, white balance and sepia tone, nostalgic filter, simulation of the specifics of chemical film emulsions, simulation of the aging of certain chemical dyes, etc.
  • the filter / effect process 260 required.
  • the data may be taken from the terminal data memory 300 and the filter and effect records 340.
  • Buffer M 335 can also be used for other purposes; for example, to identify those pixels in buffer I 305 to which a filter or effect is to be applied, or which are to be copied, prepared, or otherwise output as an image separated from buffer I 305.
  • step 415 the previously defined selection of filters and effects is applied to the pixels in buffer M 335, such as provided by the filter / effect process 260 to produce, for example, the final result 345.
  • step 420 the final result 345 or a derived result may be output, such as by display on the display 240 of the terminal.
  • the entire process 400 may be iterated; alternatively, during all iterations, the user may also use an erase tool to change the selection of pixels selected in step 500 and identified in step 600.
  • Fig. 15 is a flowchart showing a detail of a process for receiving and processing user input in the form of strokes.
  • the illustrated process may be performed by the stroke input process 500.
  • the user may activate a brush or eraser tool via the user interface.
  • the brush and erase tools work in a very similar manner, but the brush tool adds input, while the erase tool makes it possible to remove parts of previously made inputs and / or their results.
  • Brush and erase tool can thereby leave temporary optical tracks in the display 240 of the terminal, it may be useful to draw the track slightly wider than the fingertip or the stylus of the user, so that the user can immediately see the display 240 which image areas are or will be affected by his input.
  • step 510 the automatic pixel object recognition as performed by the object recognition process 600 may be optionally disabled by the user. As in other of the steps set out, step 510 is optional and / or may be performed in a different order, such as preceding step 505.
  • step 515 the user may shift the image portion of the buffer I 305 visible in the display 240 and set or accept a new zoom level in step 520, such as by a two-pincer gesture.
  • the previously described steps of the stroke input process 500 may also be performed in a different order, both in relation to one another, and in a different order with respect to other steps; For example, the user can see the visible area of the Move and scale buffer I 305 before executing step 505.
  • the values desired to set steps 515 and 520 may conveniently be set by the user via gestures, such as two-finger gestures in an opening, closing or shuffling manner, or other gestures, as long as they clearly differ from the gesture used for stroke input.
  • Another embodiment also or additionally allows the user to explicitly select a mode or tool to set the desired visible image section and / or the magnification scale thereof by such or other methods.
  • the magnification determines the resolution of the pixels in buffer W 310.
  • step 525 the user performs a single stroke, such as moving his index finger tip from a coordinate-defined location to another location on the display 240 while in contact with the touch screen, while the brush or erase tool is moving is activated.
  • the stroke input process 500 stores the effective area of the brush in buffer P 315 (element 1005 in Figs. 19 and 20).
  • the values in buffer P 315 are either 1, for all pixels that are within the effective range, or 0, for all pixels outside the effective range.
  • step 540 of the stroke input process 500 the center of the brush or erase tool is found via the path created in step 525, which may correspond, for example, to the center of the tool tip used.
  • the coordinates of the tool center are recorded at least at the beginning and end of a stroke.
  • the connecting line between the recorded coordinates can be defined, for example, by the lines connecting the coordinates, these lines being defined by OpenGL®, by a linear mathematical line character function, by a rounding polynomial train (spline function) or the like. can be generated.
  • the line width of the generated line may be parameters of the stroke input process 500 and may be set to 1 pixel, for example.
  • the line thus defining the path of the stroke is placed in buffer B 320 (element 1010 in Fig. 19 and Fig. 20).
  • the values of buffer B 320 may be 1, for pixels defining the line, and 0, for pixels that do not.
  • the lines represented in buffer B 320 will henceforth be referred to as "inner pixels" since the pixels of these lines are within the area image of the object to be isolated.
  • the result of the operation may be graphed on the display 240 as visual feedback, conveniently already during the stroke input process done by the user.
  • a suitable representation is the output of the buffer P 315. While FIG. 20 illustrates the contents of the buffer P 315 on element 1005 in pure black, it is useful to alter the contents of the buffer P 315 (and / or other buffers as shown in FIG. 20) as a halftone, shaded or colored area and / or by using transparency such that the pixels of the buffer I 305 underneath are still visible.
  • Step 555 shows that steps 525 through 555 are repeated iteratively as long as the user makes additional strokes.
  • step 560 the user terminates his inputs 245 by, for example, raising his or her fingers from the touchscreen display, releasing a mouse button, or other recognizable mode changes.
  • the stroke input process 500 determines coordinates and size of the smallest rectangle that encloses the effective range of the strokes generated in steps 525-555 in addition to a defined padding size ("padding").
  • the pixels corresponding to the rectangle from buffer I 305 are stored as a new buffer W 310.
  • Fig. 18 graphically illustrates the contents of the buffer W as element 900 (and buffer I 305 as element 805, the buffers P, B and D are also visible here, but not numbered).
  • FIG. 19 illustrates the buffer W 310 isolated as element 900, illustrating an exemplary stroke 1010 including effective region 1005 and padding 905.
  • Fig. 20 illustrates the various buffers as separate levels.
  • the stroke input process 500 determines the perimeter of the accumulated effective range and stores it in buffer D 325 (element 1015).
  • the values in buffer D 325 are either 1 for pixels on the perimeter or 0 for pixels outside it. Determining the perimeter can be done in several ways.
  • An expedient embodiment of the present method analyzes the contents of the buffer P 315 and, for each pixel "p", determines to which value the contents of the eight pixels immediately adjacent to it sum up. Only when the values of the eight neighboring pixels add up to 8 or "p" itself is 0, is “p” not on the perimeter. However, if "p" is on the perimeter, the value 1 is stored at a corresponding place in the buffer Q 325, otherwise the value 0.
  • Fig. 16 is a flowchart for illustrating in detail a process of object recognition. This process may be performed, for example, by the object recognition process 600.
  • Step 605 illustrates that the previous step 500 has been completed or that it is being executed in parallel to step 500, as detailed below under FIG. 22 ("online mode").
  • step 700 the object recognition process 600 generates a distance, cost, or graph theoretic network of pixels relative to the buffers W, P, B, and D, and uses that network to image pixels in a buffer R 330 (in FIGS. 20 and 21) 110 illustrated) as "inner pixels” (with the value 1) or “outer pixels” (with the value 0) to mark.
  • This step is illustrated and illustrated in more detail in FIG.
  • a Gaussian blur or similar blur function is applied to buffer R 330, scaling its filter kernel size to the dimensions of buffer W 310. This ensures that the amount of generated edge blur is relative to the size of the window W, ie smaller windows W are correspondingly less strongly softened than larger windows W.
  • the effect of the Gaussian blur is graphically illustrated in FIG. 21, in the element 1100 (representing buffer R 330) is transformed to element 1105 by the Gaussian Blur.
  • a ramp threshold function T (p) produces clean, soft edges at the softened edges of the R 330 buffer with a ramp that i.a. AHasing artifacts prevented.
  • One possible threshold function is as follows (where "p" is a pixel):
  • Step 625 illustrates that buffer R 330 can be scaled by factor 1 / S (that is, the inverse of step 610) to the original dimensions of buffer W 310.
  • the result of step 625 may be written to the buffer R 330.
  • Step 635 provides that the buffer R 330 may be mixed into the buffer M. If the input was made by the brush tool (ie was "painted"), the maximum value of the source pixels (buffer R 330) or the target pixels (buffer M 335) is used during the mixing; however, if the input was made by the erase tool (ie was "erased"), the minimum value of 1 source pixel (buffer R 330) or 1 target pixel (buffer M 335) is used during the mixing together. This will ensure that the blending feature correctly accumulates successive results (from both the brush and the delete tool).
  • Fig. 17 is a flowchart illustrating how a process of creating a pixel-distance network and the application of routing algorithms in that network are used to determine object pixels.
  • the aim of this flow chart is to show how the shortest path between any pixel p in buffer W 310 having a corresponding pixel of value 1 in buffer P 315 to pixels of value 1 in either buffer B 320 or buffer D 325 can be found.
  • Determining the shortest path (hereinafter referred to as "pathfinding”) can be achieved in a variety of ways, such as by using the Dijkstra algorithm, the Bellman-Ford algorithm, the A * search algorithm, the Floyd-Warshall algorithm, the Johnson algorithm or other suitable algorithms.
  • FIG. 17 exemplifies an efficient way to perform this operation using the Dijkstra algorithm and a * Fibonacci heap as data structure.
  • step 701 first all pixels in buffer R 330 are initialized to the value 0. Steps 705 through 745 iterate over each pixel p in buffer W 310, which is also within the effective range of the strokes (that is, whose corresponding pixel in buffer P 315 is 1). In step 710 it is checked whether the pixel corresponding to p in buffer B 320 or buffer D 325 has the value 1. If none of the pixels corresponding to p in buffer B 320 or buffer D 325 has the value 1, the value infinity (or a data type maximum value or a very high value) is stored in buffer W 310 at the corresponding pixel in step 735.
  • step 720 it is checked (if not already done) whether the pixel corresponding to p with value 1 was found in buffer B 320 or buffer D 325. If it was in buffer D 325, in step 725 the corresponding pixel in buffer R 330 is set to 0 (and the pixel is thus declared as an "outer” pixel). If, however, the corresponding pixel with value 1 was in buffer B 320, in step 730 the corresponding pixel in buffer R 330 is set to value 1 (and the pixel is thus declared as an "inner” pixel).
  • the Pixel p is then added to the Fibonacci heap in step 740, whereupon the process returns to step 705 to iterate through all pixels p in buffer W 310 that are also within the stroke's effective range, that is, their corresponding pixel in buffer P 315 has the value 1.
  • step 750 When all pixels p have been added to the Fibonacci heap, a pixel with the smallest distance value is selected in step 750. In step 755, the neighboring pixels q of this pixel p are read out. In step 760, the sum of on the one hand the distance values of p and on the other hand the p-q distance is calculated.
  • the pq distance may be, for example, the Euclidean distance between the colors in each of the two pixels, with their respective red, green and blue components (in [0,1], determined from the pixel colors of the buffer W 310) as coordinates in the Distance function can be used.
  • step 765 it is checked if the sum obtained in step 760 is smaller than the distance value of q.
  • step 770 the Fibonacci heap is reordered by the smallest possible distance value.
  • step 775 the value of the pixel corresponding to q in buffer R 330 is set to the value of the pixel in buffer R 330 corresponding to pixel p.
  • step 780 it is checked if the Fibonacci heap is empty. If it is not, the process continues to step 750. If it is, the process returns to step 615 in FIG. 16 in step 799.
  • Fig. 18 is a graphic illustration of the contents of the buffers W, I, P, B and D. Fig. 18 will be explained in more detail in the context of other figures.
  • Fig. 19 is a graphic illustration of the contents of the buffers W, P, B and D. Fig. 19 will be explained in more detail in the context of other figures.
  • Fig. 20 is a graphic illustration of the contents of buffers R, D, B and P. Fig. 20 will be explained in more detail in the context of other figures.
  • Figure 21 is a graphical illustration of the contents of buffer R, application of a Gaussian Blur, and a ramp threshold function. Fig. 21 will be explained in more detail in the context of other figures.
  • Fig. 22 is a flowchart illustrating a process in which a terminal receives and processes user inputs in parallel.
  • the stroke input process 500 and the object recognition process 600 serially, that is, executed sequentially.
  • these steps are performed substantially in parallel, with the object recognition process 600 (the "find") performed substantially by the CPU 212, the stroke input process 500 ("paint"), essentially by the GPU 214 becomes.
  • step 1205 the terminal obtains (or accesses) a pixel-by-pixel digital photo. This is referred to below as buffer I 305.
  • the buffer I 305 may be displayed on the display 240 of the terminal.
  • the brush or erase tool of the stroke input process 500 has been activated (similar to step 505) and the user has been able to adjust the visible portion of the buffer I 305 by moving and scaling (similar to step 515 and 520).
  • buffer C 350 is generated. This buffer reflects the accumulated effective range of the brush and erase strokes, similar to buffer P 315, but the buffer C 350 is rendered to the display 240 to provide visual feedback to the user, since the buffer P 315 only current brush or delete tool effective range that corresponds only to the single, associated stroke that was made in the then current run from step 1220 to 1240. Like buffer M 335, buffer C 350 may persist for all input strokes. In the following steps, it should be noted that all modifications to buffer C 350 are also rendered to the display 240.
  • step 1215 the user makes one or more strokes during which (parallel) step 1220 is performed. These strokes are also stored in buffer C 350.
  • step 1220 the terminal receives and processes a stroke input of the user as a subsequence, that is, as part of the total strokes made by the user.
  • Steps 1220 through 1240 are performed on a dedicated thread, wherein, depending on workload and the technical capabilities of the terminal, multiple instances of steps 1220 through 1240 may be executed in parallel on their own threads.
  • the length of the subsequence may be a fixed quantity determined, for example, by the lapse of a certain period or by a certain number of traversed pixels; however, it can also be determined dynamically via the then-current workload of the CPU 212: If, for example, the CPU 212 is currently under relatively low workload, the length of a subsequence can be defined correspondingly shorter.
  • the subsequence of a user-initiated stroke may be general are received and processed by the stroke inputting process 500 ("paint") from the GPU 214, but the parallel object recognition 600 ("pathfinding") is essentially executed by the CPU 212, whereby the ideal length of a subsequence from the current workload the CPU 212 can be derived.
  • step 1225 the range of action of the stroke subsequence in buffer C 350 is visually highlighted such that the user is visually informed that their respective input has just been processed.
  • visual highlighting can be done by hiding, changing brightness, color, or applying transparency effects.
  • step 1230 the GPU 214 generates the buffers W (310), P (315), B (320), and D (325) according to the process previously described with respect to FIG. 15 for generating these buffers, as a sequence of strokes by iterating between steps 525 and 545 (one pass for each stroke in the sequence).
  • step 550 is skipped in this loop because rendering already happens by using buffer C 350.
  • step 1235 the object recognition is performed by the object recognition process 600 as previously described in FIG. 16, step 635 (buffer buffer 330 in buffer M 335) is also threadsafe executed so that the results of the stroke input subsequence of a each thread executing steps 1220 through 1240 are sequentially ordered in the correct order. In step 1240 it is checked whether there are any more strokes to process. As long as this is the case, proceed to step 1215.
  • Fig. 23 demonstrates as an illustration a user interface of a possible embodiment.
  • a photograph 1320 is shown, showing a watering can 1325 as an example.
  • tool selection buttons for, for example, the paint brush tool 1305 and the delete tool 1310, and a possibility to turn on / off the automatic object detection 1315 are shown. Additional tool selection buttons may be displayed, such as user interface manipulation tools, recalculation of object recognition, or a selection palette of photographic filters and effects.
  • Fig. 24 illustratively demonstrates a user interface of a possible embodiment in which stroke inputs made by the user have been received.
  • Line 1405 illustrates buffer B 310 and shows the coordinates of the stroke that the user made.
  • the tool selected for drawing is the brush tool 1305.
  • the effective range of the Brush tool is illustrated by circle 1415.
  • the area 1410 (crosshatched in the diamond pattern) results from accumulation of the effective areas endang of the path, which was described by the stroke and stored in buffer P 315.
  • Fig. 25 exemplifies a user interface of a possible embodiment in which stroke inputs made by the user have been received and processed by the object recognition process.
  • the result of the object recognition is represented by area 1505 (diagonal oblique hatching).
  • the area 1505 lies within the cumulative effective area 1410 and corresponds to the pixels in the buffer M 335.
  • the area 1505 also includes the deletion area 1510, the deletion of which is described in FIGS. 26 and 27.
  • Fig. 26 illustratively demonstrates a user interface of a possible embodiment in which a user-entered stroke entry was made near erase area 1510, since erase area 1510 extends beyond the actual object edges and is to be removed for correction.
  • Line 1605 shows the path from the coordinates of the stroke that the user has made.
  • Region 1610 illustrates the accumulated effective range of the erase tool used in FIG.
  • Region 1615 illustrates the range of action of the erase tool used in FIG. 26 at the time the stroke ended.
  • Fig. 27 demonstrates by way of illustration a user interface of a possible embodiment in which the result of Fig. 26 is shown.
  • Area 1705 (shown in diagonal skew) illustrates the revised object in which an object 1510 identified in area 1610 has been removed from area 1505. Now, an effect or filter can be selectively applied to the detected object in the region 1705.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

Die vorliegende Erfindung betrifft ein Computerimplementierter digitaler Unschärfefilter zur Erzeugung eines einem falsch fokussierten Linsensystem entsprechenden Unschärfeeindrucks in einem digital in einem Bild-Speicher ursprünglich vorliegenden Bild, welches für jeden Bildwert jeden Farbkanals jeden Punktes des ursprünglich vorliegenden Bildes anhand einer Faltungsformel mit einem Filterkern der die Form eines angestrebten optischen Zerstreuungskreises aufweist, ein neuer Bildwert erzeugt wird und aus den so digital erzeugten neuen Bildwerten ein unscharfes Bild als Ergebnis erhalten wird.

Description

Computerimplementierter digitaler Unschärfefilter zur Erzeugung eines einem falsch fokussierten Linsensystem entsprechenden Unschärfeeindrucks in einem digital in einem Bild-Speicher ursprünglich vorliegenden Bild
Die vorliegende Erfindung betrifft einen computerimplementierten digitalen Unschärfefilter zur Erzeugung eines einem falsch fokussierten Linsensystem entsprechenden Unschärfeeindrucks in einem digital in einem Bild-Speicher ursprünglich vorliegenden Bild, sowie ein zugehöriges Computersystem und Computerprogramm(produkt).
Durch die fortschreitende Miniaturisierung werden Digitalkameras heute immer kleiner, ein Großteil derselben ist gar als technisches Beiwerk in andere Geräte wie zum Beispiel Smartpho- nes eingebunden. Diese vom Anwender ob der spontanen Verfügbarkeit geschätzte Entwicklung bringt aber auch Nachteile:
Nicht nur die Elektronik, auch die optischen Systeme werden immer kleiner. Die massiv verkleinerten Bauformen der Objektive und der Bildsensoren bedingen, dass heute ganz andere Objektivbrennweiten als„Normalbrennweiten" gelten, als noch vor wenigen Jahren. Hatte das Standardobjektiv einer marktüblichen Kleinbildfilmkamera vor ca. 15 Jahren noch eine Brennweite von z.B. 40-50 mm um einem dem menschlichen Auge ähnlichen Bildwinkel erfassen zu können, so hat das Objektiv einer marktüblichen Smartphonekamera heute nur noch etwa 4 mm Brennweite, erfasst dabei aber einen ähnlichen Bildwinkel.
Die kürzeren Brennweiten dieser modernen Linsensysteme bedingen nun einen deutlich größeren Schärfentiefebereich. Dieser Effekt ist zum einen gewünscht, da er durch Fehlfokussierung bedingte, komplett unscharfe Aufnahmen unwahrscheinlicher macht, er ändert aber auch nachhaltig den gesamten Bildeindruck dieser Kamerasysteme. So ist es dem Fotografen nicht mehr oder kaum noch möglich, Nahpunkt und Fernpunkt der Schärfeebene gezielt auf bestimmten Motivbereichen zu platzieren, um bestimmte Motivdetails hervorzuheben und andere Bereiche gezielt in Unscharfe auszublenden.
Einer der Hauptgründe, weshalb Fotografen heute noch zu großformatigeren Systemkameras greifen, sind die besseren Gestaltungsmöglichkeiten durch die größeren Linsensysteme mit entsprechend längeren Brennweiten. Aufnahmen mit knappen, gezielt gesetzten Schärfentiefezonen werden in der Regel als professioneller erkannt und bevorzugt.
Allgemein bekannte Ansätze, dieses Problem durch eine digitale Bearbeitung des Bildes zu lösen, wenden meist simple Weichzeichnungsmethoden wie zum Beispiel den Gaußschen Weichzeichner an, deren optischer Unschärfeeindruck aber nicht dem echter Linsensysteme entspricht und deren Ergebnisse somit als unrealistisch empfunden werden. Desweiteren sind bekannte Lösungsansätze dieses Problems oft nicht in der Lage, gleitende Unschärfeverläufe zu erzeugen. Diese sind zur realitätsnahen Illusion von Raumtiefe und für einen schlüssigen Bildeindruck aber notwendig. Auch versagen bekannte digitale Bildbearbeitungsmethoden und die von ihnen verwendeten Algorithmen an den harten Ubergängen von scharfem Motiwordergrund zu mit sogenanntem ,Bokeh' strukturierten Unschärfen im Hintergrund (und andersherum).
Weitere bekannte Ansätze, dieses Problem zu lösen, wenden erheblich komplexere digitale Bildbearbeitungsmethoden an, die sich wesentlich aufwändigerer Algorithmen bedienen, um zu realistisch wirkenden Unschärfeillusionen zu gelangen. Diese Methoden benötigen aber erhebliche, auf digitale Bildbearbeitung spezialisierte Rechenkapazitäten mit entsprechend hohem Energiebedarf (etwa hochspezialisierte Bildverarbeitungsprozessoren und/oder Bildbearbeitungsbaugruppen), die Endanwendern üblicherweise nicht zur Verfügung stehen und auf herkömmlichen, tragbaren System wie zum Beispiel Smartphones oder Laptops schon aus Energieversorgungsgründen nicht zur Verfügung stehen. Daher ist die Anwendung derartiger komplexer digitaler Bildbearbeitungsmethoden auf vorerwähnten tragbaren Geräten, aber auch auf durchscnruttlich ausgestatteten sogenannten Desktopcomputer-Systemen unpraktikabel, da dies viel zu lange Rechenzeiten erfordern würde.
Vor diesem Hintergrund ist es daher Aufgabe der vorliegenden Erfindung, digitale Unschärfefil- ter zur Erzeugung eines einem falsch fokussierten Linsensystem entsprechenden Unschärfeein- drucks anzugeben, die auch auf durchschnittlich ausgerüsteten Computern, insbesondere mobilen Computern wie Smartphones oder Tablets oder Laptops, hinreichend schnell arbeiten. Dies wird durch einen computerimplementierten digitalen Unschärfefilter zur Erzeugung eines einem falsch fokussierten Linsensystem entsprechenden Unschärfeeindrucks in einem digital in einem Bild-Speicher ursprünglich vorliegenden Bild nach Anspruch 1, sowie durch ein zugehöriges Computersystem nach Anspruch 8 oder 9 sowie ein Computerprogramm(produkt) nach Anspruch 10 bis 12 gelöst. Zweckmäßige Ausführungsformen ergeben sich aus den Unteransprüchen.
Die Erfindung löst die beschriebenen Probleme des bekannten Standes der Technik in dem sie erlaubt, beliebige, bereits vorliegende Fotos nachträglich und selektiv mit naturgetreuen Unscharfen zu versehen. Die dabei zur Anwendung kommenden Methoden erfordern sehr überschaubare Rechenkapazitäten und sind speziell zur Anwendung auf graphischen Co-Prozessoren optimiert, wie sie heute üblicherweise in Smartphones und DigitaLkameras zur Anwendung kommen.
Dabei werden, um eine realistisch anmutende Unschärfe zu erzeugen, im wesentlichen zwei Methoden auf das digitale Bild angewendet.
Zum einen kommt eine Faltungsformel (Konvolution) mit geformtem Filterkern zum Einsatz, bei dem die Form des Filterkerns der gewünschten Form des Zerstreuungskreises entspricht. Wenn f * g die Faltung des Filterkernes f mit einem Farbkanal des Bildes g ist, dann ist jedes Pixel von f * g, (f * g)(n), etwa durch fol ende Faltungsformel für jeden Bildpunkt n definiert:
Figure imgf000005_0001
k€D
[- L/»/2J , LW2J] x [- LAAK LA/2J] c z x
/ : D - [0, 1] C R
g : Z x Z - [0, 1) C R x [0, gw - 1] x [0, gh - l] = g(x) = 0
Figure imgf000005_0002
wo f(x) den Wert des Filterkernes am Pixel (c - x) angibt,
und g(x) den Wert des Farbkanals des Bildes am Pixel x angibt, wobei der auf die nächst kleinste ganze Zahl abgerundete Wert von x ist, sowie ξν die Filterkernbreite, fh die Filterkernhöhe, gw die Bildbreite und gh die Bildhöhe angibt.
Zum anderen werden Spitzlichter identifiziert und mit Filterkernen spezifischer Größe überlagert, um die in optischen Systemen mit längeren Brennweiten üblichen sogenannten Bokeh- Scheiben zu erzeugen. Eine typische Ausfe typi der Erfindung sieht zudem vor, dass der Anwender die Form des anzuwendenden Filterkerns selber auswählen oder fesdegen kann, um die Simulation des einem falsch fokussierten Linsensystem entsprechenden Unschärfeeindrucks derart zu gestalten, als könne er die Form der Irisblende des simulierten optischen Systems (und damit die Form des Zerstreuungskreises) selber fesdegen.
Um eine noch realistischer wirkende Unschärfeberechnung zu erzielen, sind vorzugsweise weitere Maßnahmen förderlich.
Zum einen ist es der Qualität des Ergebnisses oft dienlich, wenn der Anwender jenen Bereich oder jene Bereiche des Ausgangsbildes selektiert, die den Motiwordergrund repräsentieren und keinesfalls unscharf oder aber gänzlich unscharf erscheinen sollen. Diese Motivteile sind in der Regel weitgehend parallel zum Aufnahmemedium ausgerichtete Objekte, beispielsweise Personen, ein Gesicht, Bäume oder ähnliches.
Eine sehr schnelle und einfache Markierung eines solchen Motiwordergrundes ist unter Anwendung entsprechender Verfahren, wie etwa dem weiter unten beschriebenen computerimplementierten Verfahren und/ oder System zur Erkennung eines mittels Stroke-Eingabe eines Anwenders markierten Objekts anhand von Pixeln in einem digitalen Bild (nachfolgend auch vorliegendes Verfahren oder System genannt) und zum Beispiel bei Verwendung eines berührungsempfindlichen Büdschirms oft schon durch einfaches oder mehrfaches Streichen mit dem Finger zu bewerkstelligen.
Der vom Benutzer so definierte Bildbereich repräsentiert nun vorzugsweise den Motiwordergrund. Dieser wird in einen separaten Buffer mit transparentem Alphakanal kopiert. Zugleich wird vom ursprünglichen Originalbild eine Kopie angefertigt, die zum Motivluntergrund aufgearbeitet wird. Zum anderen ist ein ideales Ergebnis vor allem dann zu erzielen, wenn der Anwender einen oder mehrere Unschärfeverläufe im Bild definiert, die die Raumtiefe des Motivs repräsentieren. In einer zweidimensionalen Photographie ohne weitere Meta-Informationen zu Objektdistanzen etc. ist es in der Regel nur sehr bedingt automatisch ermittelbar, welche Entfernungen bestimmte Motivbereiche zur Aufnahmeebene hatten. Die Erfindung sieht es daher vorzugsweise vor, den Anwender einen oder mehrere Unschärfeverläufe definieren zu lassen, welche die Tiefeninformation im abgebildeten Motiv repräsentieren. Dies kann an berührungsempfindlichen Bildschirmen zum Beispiel durch eine einfache Zwei-Finger- Zangengeste erfolgen. Desweiteren sieht die Erfindung vor, solche Unschärfeverläufe automatisch so korrekt wie möglich vorzupositionieren, wobei Größe, Position und Form des markierten Motiwordergrundes in Betracht gezogen werden können. Vorzugsweise ist auch eine Auswertung weiterer Aufnahme- und Motivinformationen durch die Erfindung vorgesehen, wie Brennweite und Irisblendenöffnung des Aufnahmeobjektivs, Neigungswinkel der Kamera zum Aufnahmezeitpunkt, vermutete Objektdistanz sowie Analysedaten des Autofocus-Schärfe-Such-Prozesses, sofern elektronisch verfügbar.
Die vorliegende Erfindung sieht vor, dass der Motiwordergrund— vorzugsweise in einem Buffer Bjc im Speicher hinterlegt - innerhalb oder außerhalb der virtuellen Schärfezone liegen kann. Zur Veranschaulichung sei zunächst der häufigere Fall angenommen, in dem sich der Motiwordergrund (exakt) innerhalb der Schärfezone befindet. In diesem Fall wird der Motiwordergrund von der Erfindung nicht verändert, sondern zunächst nur in als Selektions-Bild für sich gespeichert .
Um dem Betrachter des manuell oder automatisch mit Tiefeninformationen angereicherten Bildes schließlich realistische Tiefenunschärfe zu suggerieren, wendet die Erfindung vorzugsweise einen mehrstufigen Prozess an, der je nach technischen Möglichkeiten des verwendeten Systems sequenziell oder parallel ablaufen kann. Im folgenden sei beispielhaft und ohne, daß dies eine Beschränkung der vorliegenden Erfindung bedeuten würde, ein sequenzielles Ausführungsbeispiel nach der vorliegenden Erfindung beschrieben.
Zunächst wird in der Hintergrundebene des Bildes der den Vordergrund repräsentierende Bildbereich mit Hilfe einer sogenannten Inpainling-Routine - vorzugsweise in Teilen - vollautomatisch ersetzt. Hierzu werden umliegende Motivstrukturen extrapoliert, bis der den Vordergrund repräsentierende selektierte Bildbereich soweit verkleinert wurde, dass in der nachfolgenden Un- schärfeberechnung auch bei maximalem Unschärferadius keine Bildpixel des Vordergrundmotivs mehr in die Berechnung der iiintergrundunschärfe einfließen. Das Ergebnis dieser Routine wird in einen Buffer Biaf im Speicher kopiert.
Als nächstes werden nun die unterschiedlich starken Unschärfen der verschiedenen Bildebenen berechnet. Hierzu werden n Kopien von Bili erzeugt, die entsprechend im Speicher abgelegt werden. Auf jede dieser Kopien wird eine Faltungsformel (Konvolution) mit einem scheibenförmigen Filterkern angewendet, wobei die Größe des Filterkerns in jeder nachfolgenden Kopie vorzugsweise linear vergrößert wird, bis in der n-ten Kopie die größte definierte Filterkerngröße angewendet wird. Eine typische Ausführung der Erfindung sieht vor, dass die Intensität der zu berechnenden Maximalunschärfe vom Anwender frei gewählt werden kann, wodurch die Simulation verschiedener Motivtiefen, Objektdistanzen, Irisblendenöffnungen und Brennweiten ermöglicht wird.
Basierend auf den definierten Unschärfeverläufen, in denen der Wert 0„keine Konvolution" und der Wert 1 „Konvolution mit maximaler Filterkerngröße" definiert, werden nun alle Ebenen beginnend mit Bili über die erste bis zur n-ten Ebene aufeinanderkopiert, wobei vorzugsweise ein Alpha-Blending mit alpha=l zur Anwendung kommt. Das Ergebnis dieser Operation wird im Speicher, vorzugsweise etwa in einem neuen Buffer .BWm. abgelegt.
Um die Unschärfeerzeugung nach der vorliegenden Erfindung weiter zu verbessern und die von Objektiven längerer Brennweite und/oder großer Irisblendenöffnung bekannten, durch den Zerstreuungskreis (der zwar so heißt, aber kein Kreis sein muß, sondern auch andere [flächige] Formen, wie etwa die einer Scheibe, eines Kreuzes, eines Herzens oder dergl. aufweisen kann) entstehenden sogenannten„Bokehflecken" nachzubilden, sieht die vorliegende Erfindung vor, das Motiv auf sogenannte Spitzlichter - also helle (meist kleinere) Bereiche im Bild, die oberhalb einer bestimmten Luminanzschwelle liegen - zu analysieren. In einer typischen Ausfeiner der Erfindung kann der Schwellenwert zur Spitzlichterkennung vom Anwender frei gewählt werden kann, um die Anzahl der erkannten Spitzlichter den Motivgegebenheiten anzupassen, vorzugsweise durch Uberbelichtung des Ursprungsbildes entstandene sehr helle punktförmige Bildbereiche von der Simulation der Bokeh-Scheiben auszuschliessen.
In einem weiteren Schritt, der gemäß der vorliegenden Erfindung parallel oder sequenziell erfolgen kann, wird daher auf die Luminanzwerte des etwa im Buffer ΰ,^-Bereich des Speichers gespeicherten Bildes ein Hochpassfilter angewendet, der die Spitzlichter des Motivs isoliert und wiederum vorzugsweise in einen Buffer BH im Speicher überführt. Die vorliegende Erfindung sieht dabei vorzugsweise vor, etwa durch den Buffer Bg repräsentierte Bildbereiche von der Filterung optional auszuschließen, wenn die Erkennung von Spitzlichtern hinter dem Vordergrundobjekt, insbesondere durch das sogenanntes Inpainting entstandene Spitzlichter, unerwünscht ist.
Vorzugsweise werden von einem Buffer BH, im Speicher nun n-1 Kopien BH2 bis BH„ angelegt. Auch auf diese Buffer wird nun jeweils die Faltungsformel (Konvolution) mit scheibenförmigen Filterkern angewendet, wobei die Größe des Filterkerns in jeder nachfolgenden Kopie vorzugsweise linear vergrößert wird, bis auf Kopie BHu_, die größte definierte Filterkerngröße angewendet wird.
Basierend auf den definierten Unschärfeverläufen, in denen der Wert 0 erneut„keine Konvolution" und der Wert 1„Konvolution mit maximaler Filterkerngröße" definiert, werden nun alle Bild-Ebenen beginnend mit BH über BH1 bis B,.M ineinanderkopiert, wobei vorzugsweise ein additiver Kopiermodus („lineares abwedeln") zur Anwendung kommt. Das Ergebnis dieser Operation wird vorzugsweise in einem neuen Buffer BHibir im Speicher abgelegt.
Liegt etwa der markierte Motiwordergrund— wie im Ausführungsbeispiel bisher angenommen— innerhalb der Schärfezone, wird etwa der Buffer B^ unverändert vorzugsweise über Alphablen- ding auf das Ergebnis von BHbl r kopiert, womit das Endresultat der Operation dort zur Verfügung steht.
Liegt der markierte Motiwordergrund hingegen außerhalb der Schärfezone, also innerhalb des Schärfeverlaufes oberhalb von Wert 0 und < 1, wird vorzugsweise anstelle eines sogenannten Inpainting- Verfahrens zur Erzeugung von etwa Bi„p ein sogenanntes Outpainting- Verfahren angewendet, das etwa durch Pixel-Extrapolation den Motiwordergrund vergrößert, ohne den Abbildungsmaßstab des abgebildeten Objektes zu verändern. Das Ergebnis dieser Operation wird dann vorzugsweise in einen Buffer Bouip überführt. Unter Anwendung der der Position im Un- schärfeverlauf entsprechenden korrekten Filterkerngröße (der ebenfalls nicht nur kreisförmig sein kann, sondern auch andere flächige Formen, wie Scheiben, Kreuze, Rechtecke, Quadrate, Herzen etc. aufweisen kann) wird die Konvolution mit scheibenförmigem Filterkern nun etwa auch auf Bmip angewendet und das Ergebnis vorzugsweise in B^b&r überführt. B bbir wird nun etwa per Alphablending auf das Ergebnis BHhhir kopiert, womit wiederum das Endresultat der Operation zur Verfügung steht. Eine typische Ausführung der Erfindung sieht vor, dass der Alpha-Wert, mit dem die Ergebnisse
Figure imgf000009_0001
ineinandergeblendet werden, vom Anwender frei gewählt werden kann, um die Simulation des einem falsch fokussierten Linsensystem entsprechenden Unschärfeeindrucks an unterschiedlich stark reflektierende Motive anzupassen.
Die nachstehende Beschreibung betrifft ein computer-implementiertes Verfahren und System zur Erkennung eines mittels Stroke-Eingabe eines Anwenders markierten Objekts anhand von Pixeln in einem digitalen Bild (nachfolgend auch vorliegendes Verfahren oder System genannt), das vorzugsweise im Rahmen der vorliegenden Erfindung Verwendung findet, vorzugsweise zur Selektion und/ oder Freistellung eines Bild-Bereiches in einem digital in einem Speicher vorliegenden Bild, aber auch als eigenständige Erfindung für sich allein Bedeutung hat und nutzbar ist:
Die Nachbearbeitung digitaler Bilddaten, vorzugsweise digitaler Fotos ist heute ein Prozess, der fest zum fotografischen Arbeitsablauf gehört. Zum einen optimieren moderne Kameras die zu speichernden Fotos automatisch mit komplexen Algorithmen, um optische Fehler wie chromatische Aberration oder Verzeichnungen auszugleichen. Zum anderen werden digitale Fotos aber auch individuell vom Fotografen bearbeitet.
Diese individuelle Bearbeitung findet in zunehmendem Maße direkt auf dem aufnehmenden Gerät statt, da der allgemein bekannte Arbeitsablauf, bei dem Bilder von der Kamera auf einen Computer überspielt werden, um dort selektiert, nachbearbeitet und ggf. exportiert zu werden, oft als zeitraubend und umständlich empfunden wird.
Zudem wird heute ein rasant wachsender Teil an Fotos mit Kamera-Smartphones aufgenommen, deren optische Abbildungsleistung und Rechenkapazität sich den klassischen Kompakt-Kameras immer mehr annähert bzw. diese bereits übersteigt. Die bekannte Funktionalität entsprechender Kamerasoftware beinhaltet gängige Bearbeitungs- und Korrekturfunktionen wie globale Einstellungen zu Helligkeit, Kontrast, Farbsättigung oder Weissbalance (Lichttemperatur). Ebenfalls zur Bearbeitung eines ganzen Fotos gängig sind Einstellungsfunktionen zur Mikrokontrastanhebung, Nachschärfung, Weichzeichnung oder Simulation der Verlagerung der Schärfebene nach Scheimpflugschem Gesetz (sogenannter„Tilt-Shift Effekt"). Desweiteren erfahren komplexe „Filter" eine zunehmende Beliebtheit, die bei sehr einfacher Bedienbarkeit durch komplexe, automatisch kaskadierte Bearbeitungsschritte das Foto aufwendig nachbearbeiten (Beispiele: Sepia- Umsetzung, Nostalgiefilter, Simulation spezifischer Eigenschaften chemischen Filmes oder Simulation spezieller chemischer Entwicklungsprozesse.)
Eine Einschränkung solcher Bearbeitungs- und Korrekt funktionen in allgemein bekannter Kamerasoftware ist nun aber, dass sie jeweils auf das gesamte Bild angewendet werden. Grund- sätzlich ist die selektive Anwendung von Effekten und Bildberechnungen aber eine häufige Anforderung bei der Nachbearbeitung digitaler Bilder, um nur bestimmte Bereiche des Bildes bzw. des Motives zu verändern. Gängige Werkzeuge zur Bereichsauswahl, wie sie aus klassischen Bildbearbeitungsprogrammen stationärer Computer oder Laptops bekannt sind, sind aber insofern oft unbefriedigend, als dass sie umständlich und zeitaufwendig zu bedienen sind, um eine ausreichend präzise Auswahl zu definieren. Auch benötigen gängige Bereichsauswahlwerkzeuge eine große Menge an präzisen Informationen durch den Anwender, die einerseits präzise Eingabegeräte wie Computer-Maus und Grafiktablett, andererseits Kontrollhilfen wie großformatige Bildschirme und hohe Zoom-Stufen erfordern. Ein grundsätzliches Problem gegenüber der Bearbeitung am PC ist somit die Tatsache, dass Smartphones und Kameras mit Smartphone- Funktionalität und Formfaktor die gängigen Eingabegeräte wie Maus oder Grafiktablett fehlen und die Größe des Bildschirms ausgesprochen begrenzt ist. Es ist dadurch bisher nur sehr eingeschränkt möglich, ein Bild mit ausreichender Präzision selektiv zu bearbeiten. Neben den physikalischen Limitierungen der Geräte ist der Prozess der Auswahl eines zu bearbeitenden Bereiches aber auch grundsätzlich ein zeitraubendes, komplexes Unterfangen, das auch vom Profi am entsprechend ausgestatteten PC meist nur in vielen einzelnen Schritten und mit hohem Rechenaufwand zu bewerkstelligen ist.
So ist auch das selektive Bearbeiten einzelner Bild- oder Motivbereiche direkt auf Smartphones oder Kameras mit Smartphone-Funktionalität mit bekannten technischen Lösungen nicht zufriedenstellend möglich, da
- dem Anwender durch die in der Regel ausschließliche Verfügbarkeit eines berührungsemp- findlichen Displays (eines sogenennten Touchscreens) als Eingabegerät kein der Notwendigkeit der Bereichsmarkierung entsprechend präzises Instrument zur Verfügung steht,
- die für bekannte Algorithmen zur Bereichs- und Auswahloptimierung notwendige Rechenleistung in Smartphones und Kameras mit Smartphone-Funktionalität nicht oder nur eingeschränkt vorhanden ist,
- die Definition eines bestimmten Motivbereiches zur selektiven Bearbeitung somit ein so sehr zeitraubender Prozess ist, daß er der Verwendung der Smartphone-Kamera bzw. der der Kamera mit Smartphone-Funktionalität zur spontanen, unbeschwerten Fotografie („Schnappschuss-Fotografie") in der Regel entgegensteht. Angesichts dessen stellt sich daher das Problem, eine effektivere, d.h. schnellere Erkennung von Objekten in digitalen Bildern bei guter Objekterkennungsqualität zu erreichen, als dies nach dem Stand der Technik derzeit möglich ist und so diese Funktionalität insbesondere auch auf mobilen Geräten, wie Smartphonekameras zur Verfügung stellen zu können. Darüber hinaus ist eine solche effektivere Objekterkennung unter dem Gesichtspunkt der Leistungssteigerung natürlich auch für den Einsatz auf herkömmlichen Computer zur Bildverarbeitung anstrebenswert, da auch deren Effektivität hierdurch erheblich gesteigert werden kann, wenn der einzelne Objekterkennungsprozeß bei guter Qualität deutlich rascher abläuft.
Dieses Problem wird gelöst durch ein computer-implementiertes Verfahren zur Erkennung eines mittels Stroke-Eingabe eines Anwenders markierten Objekts anhand von Pixeln in einem digitalen Bild, das folgende Verfahrensschritte aufweist:
Erhalten eines digitalen Bildes, im Speicher eines Computers;
Darstellen des digitalen Bildes auf einem Display des Computers;
Empfangen von Stroke-Eingaben eines Anwenders über eine Eingabeschnittstelle des Computers;
Bestimmen der Pixel im digitalen Bild, die mit der Stroke-Eingabe des Anwenders korrespondieren und die als dem zu erkennenden Objekt zugehörig bestimmt werden,
Bestimmen der Pixel, die in einem wählbaren Perimeterbereich um die Pixel herum liegen, die mit der Stroke-Eingabe des Anwenders korrespondieren,
Ausführung der Objekterkennung unter Verwendung der Pixel, die mit der Stroke- Eingabe des Anwenders korrespondieren und der Pixel in dem Perimeterbereich, wozu für jedes Pixel innerhalb des Perimeterbereichs bestimmt wird, ob es hinsichtlich einer gewählten Metrik näher am Außenrand des Perimeterbereiches oder näher an den Pixeln Hegt, die mit der Stroke-Eingabe des Anwenders korrespondieren, wobei ein Pixel innerhalb des Perimeterbereiches als dem zu erkennenden Objekt zugehörig bestimmt wird, wenn es hinsichtlich der gewählten Metrik näher an den Pixeln Hegt, die mit der Stroke-Eingabe des Anwenders korrespondieren
oder aber ein Pixel innerhalb des Perimeterbereiches nicht als zu dem zu erkennenden Objekt zugehörig bestimmt wird, wenn es hinsichtlich der gewählten Metrik näher am Außentand des Perimeterberiches liegt und so alle Pixel des mittels Stroke-Eingabe des Anwenders markierten Objekts erkannt werden.
Vorstehend beschriebenes Verfahren (vorliegendes Verfahren oder System) arbeitet— am Beispiel eines Smartphones mit berührungssensitivem Display (sogenannter Touchscreen) erläutert - dabei vorzugsweise wie folgt (wobei das hier anhand eines Smartphones Erläuterte ohne weiteres auch auf einen anderen Computer - etwa einen konventionellen Desktop-Computer oder auch Laptop-Computer - mit etwa anderen Eingabeschnittstellen wie etwa einer Maus oder einem Trackball oder dergleichen übertragbar ist, wobei ein Sinke dann nicht mehr mit einem Fingerstreich, sondern etwa mittels einer Mausbewegung und Auslösung der Maus, zu bewerkstelligen ist):
Der Anwender kann nach dem vorliegenden Verfahren oder System zunächst grob den gewünschten Motivbereich bzw. das gewünschte Objekt nachzeichnen, was etwa auf einem Mobilgerät mit berülmtngsempfmdlichen Display meist schon mit einem einzigen Fingerstreich („Stro- ke") zu bewerkstelligen ist. Grundsätzlich kann ein Stroke aber auch vermittels eines anderen Eingabegerätes, wie etwa einer Maus oder einem Trackball oder ähnlichem ausgeführt werden. Desweiteren kann der Anwender seine Bereichsauswahl bei Bedarf mit weiteren einfachen Stro- kes konkretisieren, falls es durch komplexe Objektformen oder ungenaue Strokes zu Fehlerkennungen gekommen ist. Das vorliegende Verfahren oder System arbeitet ausgesprochen schnell und ermöglicht dem Anwender so eine interaktive Benutzung, die binnen kürzester Zeit zum Ziel führt.
Zum Markieren des gewünschten Objektes bzw. Bildbereiches steht dem Anwender somit über die jeweilige Eingabeschnittstelle des verwendeten Computers ein Malwerkzeug zur Verfügung. Ein Stroke mit diesem Werkzeug über das dargestellte digitale Bild - etwa das dargestellte Photo - stellt dabei vorzugsweise die so vormarkierten Bereiche durch eine farbliche Hervorhebung
- etwa eine transparente oder semitransparente— Hintergrundfarbmarkierung dar. Der Wirkradius (Perimeterbereich) des zur Markierung verwendeten Werkzeugs ?inselgrößec) ist im Durchmesser vorzugsweise etwas größer als die Spitze eines Zeigefingers vorgesehen, so daß der An- wender sofort erkennen kann, wo (und das) er einen Bereich (Perimeterbereich) im Bild markiert. Sobald der Anwender den Finger vom Touchscreen hebt (Ende der Stroke-Geste), wird der vormarkierte Bereich vorzugsweise als Input nach dem Verfahren zur Objekterkennung in digitalen Bildern verarbeitet, das entsprechend markierte Objekt mit seinen Pixeln im Bild erkannt und vorzugsweise auch— etwa wiederum durch eine transparente oder semi-transparente farbige Hinterlegung - visuell dargestellt. Hierbei wird die farbliche Hervorhebung des vorausgewählten Bereiches vorzugsweise durch eine anders gefärbte Hervorhebung ersetzt, die die das erkannte Objekt repräsentiert.
Erkennt der Anwender im Ergebnis nun unzureichende Ergebnisse der automatischen Bereichsmarkierungen, kann er die bereits berechnete Bereichsmarkierung durch zusätzliche Stroke- Gesten— sei es mittels eines berührungssensitiven Displays, sei es vermittels einer konventionellen Eingabeschnittstelle, wie etwa einer Maus - iterativ konkretisieren und korrigieren. Das vorliegende Verfahren oder System sieht hier vorzugsweise ein weiteres Bearbeitungswerkzeug vor, dass die umgekehrte Wirkung des zuvor beschriebenen Malwerkzeuges hat, nämlich ein sogenanntes ,Löschwerk eug'. Der Anwender kann vorzugsweise auch mit Hilfe dieses Werkzeugs seine Bereichsauswahl iterativ konkretisieren und korrigieren, wobei die mit diesem Werkzeug jeweils getätigten Strokes zu einer entsprechenden Verkleinerung der Bereichsmarkierung führen.
Da die Auflösung des zu bearbeitenden Bildes die Auflösung des Displays eines Kamera- Smartphones bzw. einer Kamera mit Smartphone-Funktionalität in der Regel deutlich überschreitet, könnten feine Objektdetails in der Gesamtdarstellung des zu bearbeitenden Bildes für den Anwender nicht sichtbar sein. Auch ist es möglich, dass eine komplexe, fein aufgelöste Objektstruktur einen entsprechend präzise platzierten Stroke erfordert. Das vorliegende Verfahren oder System erlaubt es dem Anwender vorzugsweise nun, jederzeit mit der bekannten sogenannten J?inch-Geste' (Bewegung zweier Fingerspitzen auf dem Touchscreen voneinander weg bzw. aufeinander zu) beliebig in entsprechende Motivdetails herein zu zoomen. Dies kann jedoch ebenso vermittels konventioneller Eingabeschnittstellen (Eingabegeräte), wie etwa einer Maus mit Rän- dekad zum Zoomen oder auch einem Touchpad oder auch der Tastatur geschehen. Analog kann der Anwender den derzeitig sichtbaren Büdausschnitt nach Bedarf verschieben. Das vorliegende Verfahren oder System sieht hier vorzugsweise eine sogenannte ,Panning-Ges ' (Verschieben zweier in weitgehend gleichbleibendem Abstand liegender Fingerspitzen auf dem Touchscreen) sowie ein dediziertes sogenanntes Panning-Werk^eug (auch ,H.and-Toof genannt) vor. Auch die Kombination von Pinch- und Panning-Geste ist vorzugsweise fließend möglich und erlaubt eine schnelle, intuitive Auswahl der nachzubearbeitenden Bereichsauswahl.
Ein Strohe bezeichnet - wie bereits vorstehend erwähnt und unbeschadet der allgemeineren Bedeutung des Begriffs, die sich etwa bei Verwendung anderer Eingabegeräte (wie etwa einer Maus) ergibt - eine zweidimensionale Form, die etwa durch eine abgeschlossene Malgeste des Anwenders auf dem berührungssensitiven Display definiert wird. Anhand der erkannten Koordinaten des der Malgeste zugrundeliegenden Fingerstreichs werden die Pixel im digitalen Bild bestimmt, die mit der Stroke-Eingabe des Anwenders korrespondieren, was einem relativ ,dünnen' Linienzug - wie etwa von der hierzu verwendbaren Fingerspitze (oder auch einem spitzer [stiftartig] zulaufenden etwaigen Berührungswerkzeug für das berührungssensitive Display) hervorgerufen— entspricht. Sodann werden die Pixel im Bild bestimmt, die in einem wählbaren Perimeterbereich
- vorzugsweise einem wählbaren Radius - um den Bereich der Pixel, die mit der Stroke-Eingabe des Anwenders korrespondieren, herum liegen, was vorzugsweise unter Berücksichtigung des jeweiligen Darstellungsmaßstabes geschieht.
Vorzugsweise beginnt, sobald der Anwender die Malgeste beendet, etwa indem er den malenden Finger vom berührungssensitiven Display abhebt, der Objekterkennungsprozeß. Alternativ kann dieser Objekterkennungsprozeß — etwa bei Verwendung eines enstprechend leistungsfähigen Computers— vorzugsweise auch schon parallel zur Ausführung des Strohes, etwa vermittels der vorerwähnten Malgeste, beginnen (sogenannter Online-Objekterkennungsprozess). Verwendet man jedoch einen Offline-Objeterkennungsprozess - etwa weil der zur Ausführung des Objekterkennungsverfahrens verwendete Computers für eine zum Stroke parallele Objekterkennung nicht leistungsfähig genug ist -, so ist der verwendete Computer vorzugsweise während der nun erfolgenden Schritte des Verfahrens zur Objekterkennung für eine gewisse Zeit (nach dem derzeitigen Stand der Technik zum Zeitpunkt der vorliegenden Anmeldung für einige Sekundenbruchteile) für weitere Eingaben durch den Anwender gesperrt.
Auch ist in diesem Zusammenhang zu erwähnen, daß die nach dem vorliegenden Verfahren zu bearbeitenden Speicherbereiche (Puffer) zur Aufnahme der digitalen Bilder eine sehr große Menge an Pixeln beinhalten können. Da sich die zur Objekterkennung benötigte Rechenzeit mit der Anzahl dieser Pixel mit erhöht, kann es vorteilhaft sein, die entsprechenden Bereiche des Spei- chers, die der Aufnahme der digitalen Bilddaten dienen, mit Hilfe eines Skalierungsfaktors s (mit s < 1) so zu skalieren, dass sie maximal w Pixel enthalten. Wenn die Speicherbereiche jeweils weniger als w Pixel enthalten wird s— 1 gewählt. Die Umsetzung des vorliegenden Verfahrens erlaubt eine freie Wahl von w, so daß abhängig von der verfügbaren Rechenleistung w derart gewählt werden kann, daß eine akzeptable Bearbeitungsdauer zur Objekterkennung erreicht wird.
Die eigentliche Objekterkennung geschieht unter der Verwendung der Pixel im digitalen Bild, die mit der Stroke-Eingabe des Anwenders korrespondieren und der Pixel des digitalen Bildes, die im Perimeterbereich liegen, also vermittels der Pixel des digitalen Bildes, wie sie nach Abschluß etwa der Malgeste - wie oben beschrieben - bestimmt wurden.
Das Grundprinzip der hier dargestellten neuartigen Objekterkennung hierbei lautet, daß für jedes Pixel innerhalb des Perimeterbereichs bestimmt wird, ob es hinsichtlich einer gewählten Metrik näher am Außenrand des Perimeterbereiches oder näher an den Pixeln liegt, die mit der Stroke- Eingabe des Anwenders korrespondieren.
Liegt nun ein Pixel innerhalb des Perimeterbereiches hinsichtlich der gewählten Metrik näher an den Pixeln, die mit der Stroke-Eingabe des Anwenders korrespondieren (also etwa der ,dünnen' Linie, die durch die Berührung der Fingerspitze mit dem berührungssensitiven Displays beim Strohe hervorgerufen wird), als am Außenrand des Perimeterbereiches, so wird dieses Pixel als zu dem zu erkennenden Objekt zugehörig bestimmt.
Liegt ein Pixel innerhalb des Perimeterbereiches aber es hinsichtlich der gewählten Metrik näher am Außenrand des Perimeterberiches, als an den Pixeln, die mit der Stroke-Eingabe des Anwenders korrespondieren, so wird dieses Pixel als nicht zu dem zu erkennenden Objekt zugehörig bestimmt.
Führt man nun die vorstehende Objekt erkennung für alle Pixel im Perimeter ber eich auf einem Computer— hier vorzugsweise einem Smartphone - aus und ordnet obendrein die Pixel, die mit der Stroke-Eingabe des Anwenders korrespondieren, ebenfalls dem zu erkennenden Objekt zu, so werden alle Pixel des mittels Stroke-Eingabe des Anwenders markierten Objekts eines in einem Bereich eines Speichers eines Computers hinterlegten digitalen Bildes erkannt, womit das entsprechend erkannte Objekt auch im Speicher markiert und vorzugsweise selektiv— und damit unabhängig von den Pixeln des digitalen Bildes, die nicht zu dem Objekt gehören - digital weiterverarbeitet werden kann. Dies ist von großem Vorteil, da sich auf diese Weise eine objektselekti- ve weitere Bildverarbeitung an die Objekterkennung anschließen kann, womit etwa die Freistellung eines in einem komplexen Bildzusammenhang befindlichen Objekts, etwa einer Person auf einem Foto, erfolgen kann.
Die Bestimmung dessen, ob ein Pixel aus dem Perimeterbereich hinsichtlich einer gewählten Metrik näher am Außenrand des Perimeterbereiches oder näher an den Pixeln liegt, die mit der Stroke-Eingabe des Anwenders korrespondieren, erfolgt vorzugsweise mittels eines Algorithmus zur Bestimmung der kürzesten Wege hinsichtlich der gewählten Metrik in einem kantengewichte- ten Graphen, wobei die Pixel im Perimeterbereich einschließlich der Pixel am Außenrand des Perimeterberiches und die Pixel, die mit der Stroke-Eingabe des Anwenders korrespondieren die Knoten des Graphen bilden und die Gewichte der, die Knoten verbindenden Kanten des Graphen einen Abstand zwischen den entsprechenden Pixeln hinsichtlich der gewählten Metrik repräsentieren.
Vorzugsweise wird dabei als Algorithmus zur Bestimmving der kürzesten Wege hinsichtlich der gewählten Metrik in dem Graphen der bekannte Algorithmus von Dijkstra verwendet, der einen kürzesten Weg zwischen einem gegebenen Startknoten und einem der oder auch allen übrigen Knoten in dem kantengewichteten Graph ermitteln kann. Alternativ können natürlich auch andere Algorithmen zur Ermitdung kürzester Wege in kantengewichteten Graphen benutzt werden, etwa die Algorithmen von Bellman-Ford, Moore, Floyd etc. . 8
Bei der Verwendung des Algorithmus von Dijkstra (oder auch einer Alternative hierzu) zur Bestimmung der kürzesten Wege erfolgt vorzugsweise eine Bestimmung der Länge des kürzesten Weges zwischen einem Pixel, der mit der Stroke-Eingabe des Anwenders korrespondiert oder einem Pixel am Außenrand des Perimeterbereichs als Startknoten und allen Knoten des Perimeterbereichs.
Besonders bevorzugterweise wird während der Ausführung des Dijkstra-Algorithmus als nächster Knoten, der auf dem jeweilig zu findenden kürzesten Weg liegt, der Knoten gewählt wird, dessen Abstandssumme hinsichtlich der gewählten Metrik auf dem zu diesem Knoten zugehörigen und bis dahin gefundenen kürzesten Weg über alle zwischenliegenden Knoten im Graphen hin zu diesem Knoten vom gewählten Startpunkt aus die kleinste ist. Dabei kann der als nächster auf dem jeweilig zu findenden kürzesten Weg gewählte Knoten vermittels eines hierzu verwendeten Fibonacci-Heaps bestimmt werden, dessen Schlüssel die Abstandssumme hinsichtlich der gewählten Metrik, der auf dem jeweiligen Knoten zugehörigen kürzesten Weg über alle zwischen- liegenden Knoten im Graphen hin zu diesem Knoten vom gewählten Startpunkt aus ist. Der Einsatz eines Fibonacci-Heaps macht dabei insbesondere die Verwendung des vorgenannten Dijkstra-Algorithmus noch effizienter.
Besonders bevorzugterweise wird bei dem vorliegenden Verfahren sowohl der Abstand hinsichtlich der gewählten Metrik zwischen jeweils zwei beliebigen Pixeln, die mit der Stroke-Eingabe des Anwenders korrespondieren wie auch der Abstand zwischen jeweils zwei beliebigen Pixeln am Außenrand des Perimeterbereiches hinsichtlich der gewählten Metrik zu Null gesetzt. Auf diese Weise werden aus der Sich des kantengewichteten Graphen einerseits die Pixel, die mit der Stroke-Eingabe korrespondieren und so inmitten des zu erkennenden Objekts liegen als eine Art einziges Zentrum des zu erkennenden Objekts— gewissermaßen als ein sicher zum Objekt gehöriges Inneres des zu erkennenden Objekts - gewichtet und betrachtet und andererseits die Pixel am Außenrand des Perimeters ebenfalls als ein einziges gleichgewichtetes sicheres Äußeres gegenüber dem zu erkennenden Objekt angesehen.
Auch können Pixel, die entweder mit der Stroke-Eingabe des Anwenders korrespondieren oder am Außenrand des Perimeterbereichs liegen während der Ausführung des Dijkstra-Algorithmus auch wechselnd als jeweiliger Startknoten fungieren. Bei der Bestimmung des jeweiligen zu einem Knoten führenden kürzesten Weges wird dann festgehalten, ob dieser jeweilige kürzeste Weg von einem Pixel als Startknoten stammt, das mit der Stroke-Eingabe des Anwenders korrespondiert oder aber von einem Pixel als Startknoten stammt, das auf dem Außenrand des Perimeterbereichs Hegt. Hierdurch ist es mögHch die Bestimmung aller kürzeseten Wege für die Pixel im Perimeterbereich parallel im HinbHck auf den Abstand (hinsichtlich der gewählten Metrik) zum Außenrand des Perimeterbereichs und zu den Pixeln, die mit der Stroke-Eingabe des Anwenders korrespondieren im Inneren des Objekts durchzuführen. Hierbei wird dann jeder zu einem Pixel gehörige Knoten des Graphen dahingehend markiert, ob der zu ihm führende und ermittelte kürzeste Weg zum Außenrand des Perimeters führt oder zu den Pixeln, die mit der Stroke- Eingabe des Anwenders korrespondieren und daher im Inneren des Objektes als zu diesem in jedem Falle zugehörig Hegen.
Um die Erkennungsgenauigkeit tatsächHcher Kanten gegenüber Bildstörungen wie Rauschen, Filmkorn oder auch sehr feiner Bilddetails zu erhöhen und Signale die nicht zur Erkennbarkeit des Objekts beitragen, zu reduzieren, ist zudem vorzugsweise die Verwendung eines bilateralen Filters vorgesehen. Dieser wird auf das digitale Bild angewendet, wobei die Größe des dabei je- weils verwendeten Filterkerns - vorzugsweise proportional zur Anzahl der Pixel des digitalen Bildes - gewählt wird. Die proportionale Wahl der Größe des Filterkerns bewirkt eine einheitliche und durchgängige Glättung unabhängig von den tatsächlichen Dimensionen des digitalen Bildes.
Als Metrik für den Abstand der Pixel kommt vorzugsweise die Distanz zwischen den Farben der beiden Pixel infrage, wobei vorteilhafterweise der Euklidische Abstand zwischen den beiden Farben der Pixel verwendet wird, indem die jeweiligen Farbkomponentenanteile— vorzugsweise etwa Rot-, Grün- und Blau-Komponentenanteile - als Koordinaten im dreidimensionalen Raum R3 verwendet werden, wodurch sich eine geometrische (euklidische) Distanz zwischen den beiden — den jeweiligen Pixeln entsprechenden - Punkten im Raum R3 ermitteln läßt. Jeder der beiden Punkte im dreidimensionalen Raum entspricht dabei der Farbe des ihm zugehörigen Pixels im digitalen Bild, die aus den, den drei Dimensionen des Raumes entsprechenden Farbkomponenten besteht und deren konkrete Anteile für das jeweilige Pixel den Ort des Punktes im Raum R3 festlegen. Grundsätzlich sind aber auch andere Metriken verwendbar, vorzugsweise, wenn diese zur Abbildung von Ähnlichkeiten der Bildinformation geeignet sind.
Es wird vorliegend somit ein neuartiges Verfahren zur automatischen Erkennung von Objekten in digitalen Bilddaten gezeigt, das besonders schnell und ressourcensparend arbeitet, dabei aber keine Abstriche bezüglich Präzision oder möglicher Bildauflösung macht. Die letztendlich entstehende Bereichsdefinition zur Objektmarkierung hat somit die gleiche Auflösung wie das zur Bearbeitung vorgesehene Bild, so daß keine Interpolationsartefakte oder andere Ungenauigkeiten entstehen.
Eine Besonderheit des vorliegenden Verfahrens ist die adaptive Präzision der Objekterkennung. Sie bewirkt, dass die Funktion unabhängig von der Größe des aktuell sichtbaren Bildausschnittes (,ZoomleveF) in immer gleicher, hoher Geschwindigkeit arbeitet. Eine Verkleinerung des sichtbaren Bildausschnittes (höherer Zoomlevel) erhöht dabei lediglich die Präzision der Erkennung komplexer Kanten, die ggf. unter Verwendung verschiedener Zoomlevel iterativ entstehende Bereichsauswahl hat grundsätzlich die dem Originalbild entsprechende Auflösung.
Ein Vorteil der adaptiven Erkennungspräzision ist es, daß das Signal-Rausch- Verhältnis immer optimiert ist. Sehr feine Bilddetails wie Sensorrauschen oder auch sehr fein gezeichnete Motivstrukturen werden in hohen Zoomstufen (wie zum Beispiel einer initialen Gesamtansicht des Bildes) nicht zur Berechnung der Bereichsmarkierung in Betracht gezogen. Sollte der Anwender aber die Erkennung solcher Details in bestimmten Motivbereichen wünschen (z.B. zur präzisen Erkennung von Haaren oder Haarsträhnen), wird die Erkennungsgenauigkeit vorzugsweise durch den entsprechend zur Bearbeitung gewählten Zoomlevel adaptiv präzisiert.
Das vorliegende Verfahren oder System erlaubt es somit erstmals, direkt auf einem Kamera- Smartphone oder einer Kamera mit Smartphone-Funktionalität gezielt Objekte eines Motivs oder auch frei gewählte Motivbereiche binnen weniger Sekunden mit wenigen Schritten zu markieren und nachfolgend entsprechend selektiv zu bearbeiten, ohne Qualitätsverluste in Kauf nehmen zu müssen. Setzt man sie auf einem konventionellen Desktop-Computer oder einem Laptop oder Ähnlichem ein, so trägt sie etwa im Rahmen der Objekterkennung bei der Bildverarbeitung erheblich zur Leistungssteigerung bei, indem sie Dauer dieser Objekterkennung gegenüber den nach dem Stand der Technik bekannten Methoden massiv reduziert.
Ziel des Verfahrens zur Objekterkennung ist es, eine bestmögliche Objekterkennung bei möglichst hoher Geschwindigkeit zu gewährleisten. Bei einfachen Formen kann der Anwender so schon mit nur einem sogenannte ,Stroke' zum Ziel kommen. Sind aber komplexe Formen zu markieren (etwa Haare oder Gitter strukturen), kann der Anwender beliebig in das Bild hinein- zoomen und die Genauigkeit der verwendeten Objekterkennung entsprechend (proportional) erhöhen.
Im Ergebnis dauert eine Berechnung so immer gleich lange (auf einem handelsüblichen Smartphone zum Zeitpunkt der hier vorliegenden Anmeldung nur Sekundenbruchteile). Die erreichte Genauigkeit definiert sich durch den jeweiligen Zoom-Level.
Führt man die Objekterkennung nach dem vorliegenden Verfahren für alle Pixel im Perimeterbereich auf einem Computer— hier vorzugsweise einem Smartphone— aus und ordnet obendrein die Pixel, die mit der Stroke-Eingabe(n) des Anwenders korrespondieren, ebenfalls dem zu erkennenden Objekt zu, so werden alle Pixel des mittels Stroke-Eingabe(n) des Anwenders markierten Objekts eines in einem Bereich eines Speichers eines Computers hinterlegten digitalen Bildes erkannt, womit das entsprechend erkannte Objekt auch im Speicher markiert und vorzugsweise selektiv - und damit unabhängig von den Pixeln des digitalen Bildes, die nicht zu dem Objekt gehören - digital weiterverarbeitet werden kann. Dies ist von großem Vorteil, da sich auf diese Weise eine objektselektive weitere Bildverarbeitung an die Objekterkennung anschließen kann, womit etwa die Freistellung eines in einem komplexen Bildzusammenhang befindlichen Objekts, etwa einer Person auf einem Foto, erfolgen kann. Im folgenden finden sich nicht einschränkend zu verstehende Ausfuhrungsbeispiele in der Zeichnung. In dieser zeigen:
Fig. la das digital in einem Bild-Speicher ursprünglich vorliegende Bild mit durchgehender Schärfe vom Vordergrund bis ins Unendliche,
Fig. lb einen vermittels einer getätigten digitalen Markierung— vorzugsweise durch eine sogenannte Stroke-Eingabe auf einem berührungsempfindlichen Bildschirm— selektierten Selektions-Bereich des ursprünglichen Bildes, wobei dieser Selektions-Bereich von den außerhalb seiner Grenzen befindlichen Bildbestandteilen freigestellt und vorzugsweise als Selektions-Bild abgespeichert wurde,
Fig. lc ein Bild, bei dem der außerhalb der Grenzen des Selektions-Bereichs befindliche Bildbereich in den Randbereich des Selektions-Bereichs hinein extrapoliert wird, indem die dortigen Bildwerte durch Bildwerte aus der Bildumgebung von außerhalb des Selektions- Bereichs ersetzt wurden,
Fig. 2a ein erstes mehrerer, verschieden unscharfer Bilder, die durch Verwendung mehrerer unterschiedlich großer Zerstreuungskreise, die sich aus unterschiedlich großen Filterkernen ergeben, erhalten wurden, und wobei für jeden Bildwert jeden Farbkanals jeden Punktes des ursprünglich vorliegenden Bildes anhand einer Faltungsformel mit einem Filterkern der die Form eines angestrebten optischen Zerstreuungskreises (der zwar so genannt wird, aber nicht unbedingt kreisförmig zu sein braucht) aufweist, ein neuer Bildwert erzeugt wurde und aus den so digital erzeugten neuen Bildwerten ein unscharfes Bild als Ergebnis erhalten wurde,
Fig. 2b ein zweites mehrerer, verschieden unscharfer Bilder, die durch Verwendung mehrerer unterschiedlich großer Zerstteuungskreise, die sich aus unterschiedlich großen Filterkernen ergeben, erhalten wurden, wobei dies zweite Bild aufgrund der Verwendung eines größeren Filterkerns, der auch einen größeren Zerstreuungskreis hervorruft, unschärfer als das erste Bild ist,
Fig. 2c ein drittes mehrerer, verschieden unscharfer Bilder, die durch Verwendung mehrerer unterschiedlich großer Zerstreuungskreise, die sich aus unterschiedlich großen Filterkernen ergeben, erhalten wurden, wobei dies dritte Bild aufgrund der Verwendung eines große- ren Filterkerns, der auch einen größeren Zerstreuungskreis hervorruft, unschärfer als das zweite Bild ist,
d ein viertes mehrerer, verschieden unscharfer Bilder, die durch Verwendung mehrerer unterschiedlich großer Zerstreuungskreise, die sich aus unterschiedlich großen Filterkernen ergeben, erhalten wurden, wobei dies vierte Bild aufgrund der Verwendung eines größeren Filterkerns, der auch einen größeren Zerstreuungskreis hervorruft, unschärfer als das dritte Bild ist,
e ein fünftes mehrerer, verschieden unscharfer Bilder, die durch Verwendung mehrerer unterschiedlich großer Zerstreuungskreise, die sich aus unterschiedlich großen Filterkernen ergeben, erhalten wurden, wobei dies fünfte Bild aufgrund der Verwendung eines größeren Filterkerns, der auch einen größeren Zerstreuungskreis hervorruft, unschärfer als das vierte Bild ist,
f schließlich ein sechstes mehrerer, verschieden unscharfer Bilder, die durch Verwendung mehrerer unterschiedlich großer Zerstreuungskreise, die sich aus unterschiedlich großen Filterkernen ergeben, erhalten wurden, wobei dies sechste Bild aufgrund der Verwendung eines größeren Filterkerns, der auch einen größeren Zerstreuungskreis hervorruft, wiederum unschärfer als das fünfte Bild ist,
die digital— vorzugsweise vermittels eines Alpha-Blendings— ineinander geblendeten Bilder nach Fig. 2a bis 2f als das gewollt unscharfe (Bild-)Ergebnis,
a ein erstes mehrerer, verschieden unscharfer aus Lurninanzbildern durch Hochpassfilterung erhaltener Spitzlichterbilder, die durch Verwendung mehrerer unterschiedlich großer Zerstreuungskreise, die sich aus unterschiedlich großen Filterkernen ergeben, erhalten wurden, und wobei für jeden Bildwert jeden Farbkanals jeden Punktes des ursprünglich vorliegenden Bildes anhand einer Faltungsformel mit einem Filterkern der die Form eines angestrebten optischen Zerstreuungskreises (der zwar so genannt wird, aber nicht unbedingt kreisförmig zu sein braucht) aufweist, ein neuer Bildwert erzeugt wurde und aus den so digital erzeugten neuen Bildwerten ein unscharfes Spitzlichterbild als Ergebnis erhalten wurde,
b ein zweites mehrerer, verschieden unscharfer Spitzlichterbilder, die durch Verwendung mehrerer unterschiedlich großer Zerstreuungskreise, die sich aus unterschiedlich großen Füterkernen ergeben, erhalten wurden, wobei dies zweite Bild aufgrund der Verwendung eines größeren Filterkerns, der auch einen größeren Zerstreuungskreis hervorruft, unschärfer als das erste Bild ist,
Fig. 4c ein drittes mehrerer, verschieden unscharfer Spitzlichterbilder, die durch Verwendung mehrerer unterschiedlich großer Zerstreuungskreise, die sich aus unterschiedlich großen Filterkernen ergeben, erhalten wurden, wobei dies dritte Bild aufgrund der Verwendung eines größeren Filterkerns, der auch einen größeren Zerstreuungskreis hervorruft, unschärfer als das zweite Bild ist,
Fig. 4d ein viertes mehrerer, verschieden unscharfer Spitzlichterbilder, die durch Verwendung mehrerer unterschiedlich großer Zerstreuungskreise, die sich aus unterschiedlich großen Filterkernen ergeben, erhalten wurden, wobei dies vierte Bild aufgrund der Verwendung eines größeren Filterkerns, der auch einen größeren Zerstreuungskreis hervorruft, unschärfer als das dritte Bild ist,
Fig. 4e ein fünftes mehrerer, verschieden unscharfer Spitzlichterbilder, die durch Verwendung mehrerer unterschiedlich großer Zerstreuungskreise, die sich aus unterschiedlich großen Filterkernen ergeben, erhalten wurden, wobei dies fünfte Bild aufgrund der Verwendung eines größeren Filterkerns, der auch einen größeren Zerstreuungskreis hervorruft, unschärfer als das vierte Bild ist,
Fig. 4f schließlich ein sechstes mehrerer, verschieden unscharfer Spitzlichterbilder, die durch Verwendung mehrerer unterschiedlich großer Zerstreuungskreise, die sich aus unterschiedlich großen Filterkernen ergeben, erhalten wurden, wobei dies sechste Bild aufgrund der Verwendung eines größeren Filterkerns, der auch einen größeren Zerstreuungskreis hervorruft, wiederum unschärfer als das fünfte Bild ist,
Fig. 5 die digital - vorzugsweise vermittels eines Alpha-Blendings— ineinander geblendeten Bilder nach Fig. 4a bis 4f als das Blending-Ergebnis der unscharfen Spitzlichterbilder,
Fig. 6 zeigt das Zwischenergebnis des durch das Ineinanderblenden des - selbst schon durch Ineinanderblenden der Bilder nach Fig. 4a bis 4f - entstandenen unscharfen Spitzlichterbildes mit dem bereits gefilterten und abgespeicherten neuen unscharfen Bild, das selbst auch durch digitales Ineinanderblenden der Bilder nach Fig. 2a bis 2f entstanden ist, erhalten wurde, zeigt das Endergebnis, das wiederum durch das Ineinanderblenden des Bilder nach Fig. 6 mit dem separat abgespeicherten Selektions-Bild nach Fig. lb entstand, zeigt ein Bild, bei dem vom innerhalb der Grenzen des Selektions-Bereichs befindlichen Bildbereich heraus in den Randbereich des außerhalb des Selektions-Bereichs befindlichen Bildes extrapoliert wurde, indem die dortigen Bildwerte durch Bildwerte aus der Bildumgebung von innerhalb des Selektions-Bereichs ersetzt wurden, was die hierdurch bürstenartig aufgestellt erscheinenden Haare der Darstellerin veranschaulichen, ein Bild, das aus dem aus dem abgespeicherten Selektions-Bild - vgl. Fig. lb -, - in gleicher Weise, wie aus dem ursprünglich digital in einem Bild-Speicher vorliegenden Bild, vgl. Fig. la - durch den erfindungsgemäßen computerimplementierten digitalen Unschär- fefilter nach der vorliegenden Erfindung erzeugt wurde, und das einen Unschärfeein- druck erzeugt, der demjenigen entspricht, wie es ein falsch fokussiertes Linsensystem entsprechendend erzeugen würde, und
ein Bild als Endergebnis zeigt, wie es durch das Ineinanderblenden der Bilder nach Fig. 8 und 9 entstanden ist. und nachfolgend zeigen sodann ferner ebenfalls nicht einschränkend zu verstehende Aus- führungsbeispiele des der Durchführung der vorliegenden Erfindung dienenden compu- ter-implementiertes Verfahrens und/oder Systems zur Erkennung eines mittels Stroke- Eingabe eines Anwenders markierten Objekts anhand von Pixeln in einem digitalen Bild: als Diagramm exemplarisch verschiedene Geräte und ein sie verbindendes Netzwerk, wie vorliegend als Ausführungsform beschrieben sind,
exemplarisch das funktionale Blockdiagramm eines Endgerätes sowie einige Datenstrukturen und Komponenten desselben, das funktionale Blockdiagramm des Datenspeichers eines Endgerätes, wie er in Fig. 12 referenziert wird,
einen Prozess als Flussdiagramm, in dem ein Endgerät Fingerstreiche ("Strokes") eines Anwenders empfängt und verarbeitet, eine Objekterkennung ausführt, Filter- oder Effektfunktionen ausführt und schließlich das Ergebnis der gesamten Operation darstellt, Fig. 15 ein Prozessdetail als Flussdiagramm zum Empfangen und Verarbeiten von Fingerstreichen des Anwenders ("Strokes"), im Folgenden Stroke-Eingabeprozess genannt,
Fig. 16 ein Prozessdetail als Flussdiagramm zur Ausführung der Objekterkennung, im folgenden auch als Objekterkennungsprozess bezeichnet,
Fig. 17 ein Beispiel eines Prozessdetails als Flussdiagramm zur Erzeugung eines (graphentheoretischen) Kosten-Netzwerks aus Pixeln, in dem ein Wegftndungs-Algorithmus zur Identifikation von Objektpixeln angewendet wird,
Fig. 18 eine grafische Illustration des Inhaltes der Puffer W, I, P, B und D,
Fig. 19 eine grafische Illustration des Inhaltes der Puffer W, P, B und D,
Fig. 20 eine grafische Illustration des Inhaltes der Puffer R, D, B, P und W,
Fig. 21 eine grafische Illustration des Inhaltes des Puffers R, die Anwendung eines Gauß-Filters auf denselben sowie die Anwendung einer Rampen-Schwellenwert-Funktion auf das Ergebnis,
Fig. 22 einen Prozess als Flussdiagramm, in dem ein Endgerät zum einen Fingerstreiche („Strokes") eines Anwenders empfängt und verarbeitet und zum anderen parallel eine Objekterkennung ausführt,
Fig. 23 als Illustration exemplarisch die Benutzeroberfläche eines Ausführungsbeispiels,
Fig. 24 als Illustration exemplarisch die Benutzeroberfläche eines Ausfuhrungsbeispiels, in dem Fingerstreiche des Anwenders als Eingabe empfangen wurden,
Fig. 25 als Illustration exemplarisch die Benutzeroberfläche eines Ausführungsbeispiels, in dem Fingerstreiche des Anwenders als Eingabe empfangen und zwecks Erkennung von Objekten verarbeitet wurden,
Fig. 26 als Illustration exemplarisch die Benutzeroberfläche eines Ausführungsbeispiels, in dem der Fingerstreich des Anwenders als Eingabe zur Löschung eines nicht zum Objekt gehörenden Bildbereiches empfangen wurde, und
Fig. 27 als Illustration exemplarisch die Benutzeroberfläche eines Ausführungsbeispiels, in dem das Ergebnis der in Fig. 16 ausgeführten Aktion dargestellt wird. Fig. 11 zeigt als Netzwerk- und Geräte-Diagramm exemplarisch verschiedene Geräte, wie in diesem Dokument als Ausführungsform beschrieben. Eine Kamera 140, ein mobiles Endgerät 120 und ein Personal Computer 130 sind als untereinander verbunden dargestellt, wobei die Verbindungen entweder direkt und/ oder über ein Netzwerk 150, welches etwa ein Ethernet-Netzwerk, das Internet (welches auch drahdos angebunden sein könnte) und/ oder ein drahdoses Netzwerk auf Basis von GSM, TDMA, CDMA, EDGE, HSPA, UMTS, LTE oder anderer von einem Anbieter drahdoser Netzwerktechnik angebotenen Standards sein kann. Die direkte Verbindung zwischen den Geräten kann durch Netzwerkverbindungen (ähnlich wie zuvor genanntes Netzwerk 150) und/ oder durch Bluetooth™, USB oder ähnliche Gerät-zu-Gerät Verbindungen abgebildet sein. Die Kamera 140, das mobile Endgerät 120 und Personal Computer 130 sind ähnliche Computergeräte, die sich zum Beispiel durch ihre Benutzeroberfläche, das Netzwerk 150, zu dem sie sich verbinden und/ oder durch die Hard- und Software zur Eingabe und Ausgabe von Daten unterscheiden. Die Kamera 140, Das mobile Endgerät 120 und der Personal Computer 130 werden als dienstanfordernde Geräte im Folgenden als„Endgerät" bezeichnet. Ein Endgerät ist in Fig. 12 illustriert. Beispiele an Endgeräten beinhalten Digitalkameras, Personalcomputer, Laptop- Computer, Tablet Computer, Smartphones, e-Reader oder ähnliche Computergeräte. Endgeräte werden von„Anwendern" benutzt.
Eine Verbindung zum Netzwerk 150 kann erfordern, dass das Endgerät Softwareroutinen ausführt, die beispielsweise die bis zu sieben notwendigen Schichten des OSI Modells zur Vernetzung von Computern bedienen. Das Netzwerk 150 bezieht Computer, Netzwerkverbindungen zwischen Computern sowie Softwareroutinen ein, die die Kommunikation zwischen Computern über solche Netzwerkverbindungen ermöglichen.
Wie im Weiteren dargelegt wird, beinhaltet ein Endgerät Datenstrukturen, die eine digitale Fotografie repräsentieren. Diese Datenstruktur wird im Folgenden als„Puffer I" bezeichnet (in Fig. 13 als Element 305„Puffer I" dargestellt"). Ein Endgerät kann entweder verwendet werden um direkt selbst die zu verarbeitende digitale Fotografie aufzunehmen, oder aber um die digitale Fotografie eines zweiten Endgerätes zu verarbeiten, nachdem diese an das erste Endgerät übertragen oder übergeben wurde.
Wie im Folgenden genauer dargelegt wird, führt das Endgerät verschiedene Softwareroutinen aus, wie etwa einen Stroke-Eingabeprozess 500, einen Objekterkennungsprozeß 600, und/oder einen Filter/Effekt-Prozess 260. Der Stroke-Eingabeprozess 500 wird verwendet, um Stroke- Eingaben zu erfassen, die ein Anwender etwa typischerweise durch Berührungen in Form eines Fingerstreichs auf einem Touchscreen oder aber auch durch andere Eingabemethoden (wie durch Finger, Stylus, Maus, Trackball, Steuerkreuze oder durch Gesten o.ä) erzeugt hat. Diese Stroke-Eingaben kommunizieren des Anwenders Absicht, bestimmte Pixelbereiche innerhalb des Puffer I 305 als ein Objekt beinhaltend zu kennzeichnen. Es wird darauf hingewiesen, dass der Begriff„Pixel" im Folgenden, abhängig vom Kontext, sowohl die Position eines Pixels innerhalb eines Puffers als auch die im Pixel kodierte Farbinformation bezeichnen kann. Wenn im Folgenden zum Beispiel zwei Pixel in zwei verschiedenen Puffern als„korrespondierend" bezeichnet werden, ist dies so zu verstehen, dass beide Pixel die gleiche Position in ihrem beinhaltenden Puffer einnehmen. Die vertikale, gestrichelte Linie in Fig. 20 illustriert diese Korrespondenz zwischen den Pixeln in fünf verschiedenen Puffern. Des Weiteren können, wie im Folgenden dargelegt wird, Pixel-Puffer entweder eindimensional (wie etwa ein Alphakanal-Puffer) oder mehrdimensional (wie etwa ein Puffer, der RGB-Daten beinhaltet) sein. Generell ergibt sich die Art des jeweiligen Puffers aus dem Kontext der Beschreibung: Wird zum Beispiel beschrieben, das ein Pixel den Wert 1 erhält, indiziert dies die Beschreibung eines eindimensionalen Puffers. Die Puf- fer-Dimensionalität ist ein Parameter, der je nach Ausführungsform des vorliegenden Verfahrens veränderlich sein kann, solange das zugrundeliegende Ziel erreicht wird; so kann ein mehrdimensionaler Puffer zum Beispiel auch als eindimensionaler Puffer behandelt werden. Im Allgemeinen sind die im Folgenden Puffer R 330, Puffer B 320, Puffer D 325, Puffer P 315, und Puffer M 335 bezeichneten Puffer eindimensional; die Puffer W 310 und Puffer I 305 hingegen melirdimensio- nal. Der Objekterkennungsprozeß 600 identifiziert ein oder mehrere Pixelobjekte innerhalb der Pixelmenge, die Ausgabe des Stroke-Eingabeprozesses 500 ist. Diese Pixelobjekte werden in Puffer M (in Fig. 13 als„Puffer M" 335 referenziert) gespeichert. Wie nachfolgend dargelegt, können die mit Pixeln in Puffer M 335 korrespondieren Pixel in Puffer I 305 durch einen oder mehrere Filter/Effekt-Prozesse 260 verändert werden, welcher einen Filter bzw. einen fotografischen Effekt appliziert. Die Pixel in Puffer I 305, die mit Pixeln in Puffer M 335 korrespondieren, können auch als alleinstehendes, von Puffer I 305 unabhängiges Bild extrahiert und verwendet werden.
Wenn dieses Dokument einen Computer beschreibt, der entweder zu einem zweiten Computer eine Verbindung aufbaut (etwa, wenn ein Endgerät eine Verbindung zu einem zweiten Endgerät herstellt) oder ein Computer eine Verbindung zu einem Datenspeicher (wie dem Endgeräte- Datenspeicher 300) herstellt, so ist dies derart zu verstehen, dass derlei Verbindungen zu, durch oder über die andere der beiden Komponenten geschehen. Die Aussage etwa, dass ein Computer Daten an das Endgerät 200 schickt, soll derart verstanden werden, dass der Computer eine Verbindung zum Datenspeicher 300 des Endgerätes aufbaut bzw. Daten dorthin sendet. Die Begriffe "Datenbank" und "Datenspeicher" sind zudem in ihrer Bedeutung gleichzusetzen. Obwohl hier als in einer physikalischen Einheit integriert dargestellt, können Computer und Datenbanken auch als übliche (bzw. alleinstehende) physikalische Einheiten bereitgestellt werden. Auch die Softwareroutinen und Datengruppen der beschriebenen Software können, obwohl hier als innerhalb eines einzelnen Computergerätes ablaufend dargestellt, ggf. in entfernten oder virtualisierten Computergeräten gespeichert werden und/ oder ablaufen.
Fig. 12 stellt das funktionale Blockdiagramm eines exemplarischen Endgerätes inklusive einiger Datenstrukturen und Komponenten desselben dar. Das Endgerät 200 beinhaltet mindestens einen Prozessor 210, Endgerätespeicher 250, ein Display 240 und eine Anwendereingabe 245, alle über den Bus 220 mit der Netzwerkschnittstelle 230 verbunden. Die Prozessoreinheit 210 kann sowohl aus einer oder mehreren allgemein üblichen CPUs (Central Processing Units) 212 als auch aus einer oder mehreren anwendungsspezialisierten GPUs (Graphical Processing Units) 214 bzw. einer Kombination aus beiden bestehen. Die Komponenten der Prozessoreinheit 210 können auch durch das Betriebssystem 255 verwendet werden, um verschiedene Funktionen auszuführen, die von Routinen des Endgerätes angefordert werden. Die Netzwerkschnittstelle 230 kann verwendet werden, um Verbindungen mit dem Netzwerk 150 oder direkte Geräte- Verbindungen mit anderen Endgeräten herzustellen. Der Endgerätespeicher 250 beinhaltet üblicherweise RAM (Random Access Memory), ROM (Read Only Memory) und ein Massenspeichermedium wie eine Festplatte oder Flash-Speicher. Der Endgerätespeicher 250 speichert Programmcode und Softwareroutinen wie zum Beispiel den Stroke-Eingabeprozess 500, den Objekterkennungsprozeß 600, den Filter/Effekt-Prozess 260, aber beispielsweise auch Routinen zur Aufnahme digitaler Photos, zur Verwaltung digitaler Bilder und/ oder zur Bearbeitung digitaler Bilddaten (von denen der Filter/Effekt-Prozess 260 eine Unterroutine sein kann), Browser-, Email- und Serverroutinen aber auch Client- oder Datenbankanwendungen wie weiter unten beschrieben. Des Weiteren beinhaltet der Endgerätespeicher 250 auch das Betriebssystem 255. All diese Softwarekomp enen- ten können von einem nicht-flüchtigen, computerlesbaren Speichermedium 295 in den Endgerätespeicher 250 des Endgerätes geladen werden, wobei sich dieses auch außerhalb des Computersystem befinden und auch nur temporär über ein Netzwerk bzw. direkt verbunden sein kann. Das Endgerät 200 kann auch Hardware enthalten, die gezielt Anwendereingaben 245 unterstützt, wie zum Beispiel ein Touchscreen, eine Kamera, eine Tastatur, eine Maus, ein Stylus, ein Mikrophon, Beschleunigungssensoren und dergleichen. Diese Hardware kann auch zugleich als Display 240 ausgebildet sein, wie etwa bei einem Touchscreen, der auf Kontakt mit Fingern oder einem Stylus interaktiv reagiert.
Das Endgerät 200 kann auch einen Bus 220 verwenden, um mit dem Endgerätedatenspeicher 300 zu kommunizieren. In verschiedenen Ausführungsbeispielen kann der Bus 220 als serieller Hochgeschwindigkeitsbus, als DMA-Direktzugriff, als DAS ("Direct Attached Storage") als SAN ("Storage Area Network" oder in anderer, zielführender Form ausgebildet sein, die auch die Netzwerkschnittstelle 230 einbeziehen kann. Das Endgerät 200 kann in einigen Ausführungsformen auch viel mehr Komponenten enthalten als hier abgebildet, es ist zur Illustration der beschriebenen Lösung aber nicht notwendig, alle diese Komponenten darzustellen.
Das Endgerät 200 umfasst Datengruppen für Routinen, wie etwa den Stroke-Eingabeprozess 500, den Objekterkennungsprozeß 600 und den Filter/Effekt-Prozess 260. Weitere Datengruppen für andere Routinen, wie etwa einen Web-Browser oder einen Webserver, können ebenfalls auf einem Endgerät 200 präsent sein und ausgeführt werden. Browserroutinen können dabei zum Beispiel eine Schnittstelle bereitstellen, mit der man mit anderen Endgeräten gemäß Fig. 11, aber auch mit anderen, entfernten Endgeräten interagieren kann. Web-Browser und Webserver seien hier als Technologie zur Bereitstellung einer Benutzeroberfläche exemplarisch genannt, sie können auch durch äquivalente Techniken ersetzt werden, die das Anzeigen und Bereitstellen von Informationen auf einem Endgerät ermöglichen, etwa durch native Anwendungen ("Apps") auf mobilen Endgeräten.
Fig. 13 ist das funktionale Blockdiagramm des Endgerätedatenspeichers 300, wie er auch in Fig. 12 referenziert ist. Die Komponenten des Endgerätedatenspeichers 300 sind Datengruppen, die von den nachfolgend beschriebenen Routinen unterschiedlich verwendet werden.
Die Datengruppen, die von den in Fig. 13 illustrierten Routinen verwendet werden, können als Zelle in einer Spalte oder als alleinstehender Wert in definierter Struktur innerhalb eines digitalen Dokuments bzw. einer Datei repräsentiert sein. Obwohl im Folgenden meist als einzelner Datensatz oder Eintrag bezeichnet, können Einträge auch mehr als einen Datenbankeintrag enthalten. Die Datensätze können Zahlen, numerische Operationen, binäre Werte, logische Werte, Matri- zen, Text, Zeichenketten, Zeichenkettenoperatoren, zusammengesetzte Werte, fallabhängige Logik, Tests oder ähnliche Datenstrukturen sein, repräsentieren oder kodieren.
Fig. 14 ist ein Flussdiagramm, das einen Prozess darstellt, in dem ein Endgerät Anwendereingaben in Form von Strokes erhält und verarbeitet, eine Objekterkennung ausfuhrt, einen Filter oder Effekt anwendet und schließlich das finale Ergebnis des Gesamtprozesses präsentiert. In Schritt 405 erhält das Endgerät ein digitales Foto bzw. Zugriff auf ein solches, dessen beinhaltete Pixeldaten im Folgenden als Puffer I 305 bezeichnet werden. Puffer I 305 ist als Element 805 in Fig. 18 illustriert (Element 900, welches ebenfalls in Fig. 18 illustriert wird, ist hingegen nicht Bestandteil von Puffer I 305). Der Puffer I 305 kann nun zum Beispiel durch eine entsprechende Darstellungsroutine auf dem Display 240 des Endgerätes angezeigt werden.
Im Schritt 500 empfängt und verarbeitet das Endgerät Stroke-Eingaben (Fingerstreiche) des Anwenders durch den Stroke-Eingabeprozess 500, wie in Fig. 15 detaiJJiert ausgeführt wird. Wie an anderer Stelle beschrieben, empfängt der Stroke-Eingabeprozess 500 Eingaben durch einen Anwender, der seinen Finger auf einem Touchscreen bewegt ("Fingerstreich") oder auch durch andere Anwendereingaben (wie Stylus, Maus, durch Gesten etc.). Diese Stroke-Eingaben kommunizieren des Anwenders Absicht, diejenigen Pixel in Puffer I 305 zu beschreiben, die ein Objekt repräsentieren. Wie nachfolgend beschrieben, können die so identifizierten Pixel im Display 240 visuell hervorgehoben werden, etwa durch Einfärbung, Änderung der Luminanz, eine gezeichnete Linie oder ähnliche optische Verfahren.
In Schritt 600 führt das Endgerät die Pixel-Objekt- Erkennung aus, beispielsweise unter Verwendung des Objekterkennungsprozesses 600, der in der Beschreibung zu Fig. 16 ausführlich erläutert wird. Wie an anderer Stelle beschrieben, identifiziert der Objekterkennungsprozeß 600 ein oder mehrere durch Farbkanten abgegrenzte Pixelobjekte (im Folgenden "Objekte" genannt), die sich nahe jener Pixel befinden, die das Ergebnis des Stroke-Eingabeprozesses 500 beschreiben. Diese Objekte werden in einem Masken-Puffer ("Puffer M", in Fig. 13 als Element 335 illustriert) abgelegt, der unabhängig von Puffer I 305 behandelt werden kann.
In Schritt 410 erhält das Endgerät eine Filter- oder Effektauswahl, etwa wie vom Anwender durch Verwendung des Filter-/Effektprozesses 260 vorgesehen. Beispiele solcher Filter und Effekte beinhalten Einstellung von Helligkeit, Kontrast, Farbsättigung, Weißbalance sowie Sepiato- nungen, Nostalgiefilter, Simulation der Spezifika chemischer Filmemulsionen, Simulation der Alterung bestimmter chemischer Farbstoffe etc. Die für den Filter-/Effektprozess 260 benötig- ten Daten können aus dem Endgeräte-Datenspeicher 300 und den Filter- und Effekt- Datensätzen 340 genommen werden. Wie an anderer Stelle beschrieben, kann Puffer M 335 auch für andere Zwecke verwendet werden; zum Beispiel zur Identifikation jener Pixel in Puffer I 305, auf die ein Filter oder Effekt angewendet werden soll bzw. die kopiert, vorbereitet oder auf andere Weise als von Puffer I 305 separiertes Bild ausgegeben werden sollen. In Schritt 415 wird die zuvor definierte Auswahl an Filtern und Effekten auf die Pixel in Puffer M 335 angewendet, wie zum Beispiel durch den Filter-/Effektprozess 260 vorgesehen, um etwa das Endergebnis 345 zu erzeugen. In Schritt 420 kann das Endergebnis 345 oder ein abgeleitetes Ergebnis ausgegeben werden, etwa durch Darstellung auf dem Display 240 des Endgerätes. Wie nachfolgend genauer beschrieben, kann der gesamte Prozess 400 iteriert werden; während aller Iterationen kann der Anwender alternativ auch ein Löschwerkzeug benutzen, um die Auswahl der in Schritt 500 ausgewählten und in Schritt 600 identifizierten Pixel zu verändern.
Fig. 15 zeigt als Flussdiagramm ein Detail eines Prozesses zur Entgegennahme und Verarbeitung von Anwendereingaben in Form von Fingerstreich-Bewegungen ("Strokes"). Der dargestellte Prozess kann vom Stroke-Eingabeprozess 500 ausgeführt werden. In Schritt 505 kann der Anwender ein Pinsel- oder ein Löschwerkzeug über die Benutzeroberfläche aktivieren. Pinsel- und Löschwerkzeug arbeiten in sehr ähnlicher Art und Weise, das Pinselwerkzeug allerdings fügt Eingaben hinzu, während das Löschwerkzeug es ermöglicht, Teile zuvor gemachter Eingaben und/oder derer Ergebnisse zu entfernen. Pinsel- und Löschwerkzeug können dabei temporär optische Spuren im Display 240 des Endgerätes hinterlassen, wobei es zweckdienlich sein kann, die Spur etwas breiter zu zeichnen als es die Fingerspitze bzw. der Stylus des Anwenders ist, so dass der Anwender im Display 240 unmittelbar erkennen kann, welche Bildbereiche von seine Eingaben betroffen sind bzw. sein werden. In Schritt 510 kann die automatische Pixel-Objekt- Erkennung, wie sie vom Objekterkennungsprozeß 600 ausgeführt wird, durch den Anwender optional deaktiviert werden. Wie auch in anderen der dargelegten Schritte ist Schritt 510 optional und/oder kann in anderer Reihenfolge ausgeführt werden, etwa Schritt 505 vorausgehend. In Schritt 515 kann der Anwender den im Display 240 sichtbaren Bildausschnitt des Puffers I 305 verschieben und in Schritt 520, etwa durch eine Zweifingerzangengeste, einen neuen Vergrößerungsmaßstab ("Zoom Level") einstellen bzw. akzeptieren. Wie es auch mit anderen Schritten der Fall ist, können die zuvor beschriebenen Schritte des Stroke-Eingabeprozesses 500 auch in anderer Reihenfolge ausgeführt werden, sowohl in Bezug zueinander, als auch in anderer Reihenfolge in Bezug auf andere Schritte; so kann der Anwender zum Beispiel den sichtbaren Bereich des Puffers I 305 noch vor Ausführung von Schritt 505 verschieben und skalieren. Die zur Einstellung von Schritt 515 und 520 gewünschten Werte können vom Anwender zweckdienlich über Gesten gesetzt werden, etwa eine Zweifinger-Gesten in öffnender, schliessender oder schiebender Weise oder aber andere Gesten, sofern sich diese eindeutig von der zur Stroke-Eingabe verwendeten Geste unterscheiden. Eine andere Ausführungsform erlaubt es auch oder außerdem, den Anwender explizit einen Modus bzw. ein Werkzeug auswählen zu lassen, um den gewünschten sichtbaren Bildausschnitt und/ oder den Vergrößerungsmaßstab desselben durch solche oder ganz andere Methoden festzulegen. Der Abbildungsmaßstab bestimmt die Auflösung der Pixel in Puffer W 310.
In Schritt 525 führt der Anwender einen einzelnen Stroke aus, etwa indem er seine Zeigefingerspitze, während diese ununterbrochen Kontakt zum Touchscreen hat und hält, von einem durch Koordinaten definierten Ort zu einem anderen Ort auf dem Display 240 bewegt, während das Pinsel- oder das Löschwerkzeug aktiviert ist. In Schritt 530 speichert der Stroke-Eingabeprozess 500 den Wirkbereich des Pinsels bzw. Löschwerkzeuges in Puffer P 315 (Element 1005 in Fig. 19 und Fig. 20). Die Werte in Puffer P 315 sind entweder 1, für alle Pixel die innerhalb des Wirkbereichs liegen, oder 0, für alle Pixel außerhalb des Wirkbereichs. In Schritt 540 des Stroke- Eingabeprozesses 500 wird der Mittelpunkt des Pinsel- bzw. Löschwerkzeuges über den in Schritt 525 erzeugten Pfad gefunden, dieser kann zum Beispiel dem Mittelpunkt der eingesetzten Werkzeugspitze entsprechen. Die Koordinaten des Werkzeugmittelpunktes werden mindestens zu Beginn und zu Ende eines Strokes aufgezeichnet. Die Verbindungslinie zwischen den aufgezeichneten Koordinaten kann zum Beispiel durch die die Koordinaten verbindende Linien definiert werden, wobei diese Linien durch OpenGL®, durch eine linear-mathematische Linienzei- chenf nktion, durch einen abrundenden Polynomzug (Splinef nktion) o.ä. erzeugt werden können. Die Strichstärke der erzeugten Linie kann Parameter des Stroke-Eingabeprozesses 500 sein und kann zum Beispiel auf 1 Pixel festgelegt werden. In Schritt 545 wird die so den Pfad des Strokes definierende Linie in Puffer B 320 (Element 1010 in Fig. 19 und Fig. 20) abgelegt. Die Werte des Puffer B 320 können 1 sein, für Pixel die die Linie definieren, sowie 0, für Pixel, die dies nicht tun. Auf die in Puffer B 320 repräsentierten Linien wird fortan auch als "innere Pixel" verwiesen, da die Pixel dieser Linien innerhalb der Flächenabbildung des zu isolierenden Objektes liegen.
In Schritt 550 kann das Ergebnis der Operation als visuelles Feedback auf dem Display 240 grafisch dargestellt werden, was zweckmäßigerweise schon während des Stroke-Eingabeprozesses durch den Anwender geschieht. Eine geeignete Darstellung ist die Ausgabe des Puffers P 315. Während Fig. 20 den Inhalt des Puffers P 315 an Element 1005 in reinem Schwarz darstellt, ist es dienlich, den Inhalt des Puffers P 315 (und/ oder den anderer Puffer wie in Fig. 20 illustriert) als Halbton, schattierte oder gefärbte Fläche und/oder durch Einsatz von Transparenz derart darzustellen, dass die darunter Hegenden Pixel des Puffers I 305 noch zu erkennen sind.
Schritt 555 zeigt, dass die Schritte 525 bis 555 iterativ wiederholt werden, solange der Anwender weitere Strokes macht.
In Schritt 560 beendet der Anwender seine Eingaben 245 etwa durch Anheben seiner Finger vom Touchscreen-Display, loslassen einer Maustaste oder andere erkennbare Moduswechsel.
In Schritt 565 ermittelt der Stroke-Eingabeprozess 500 Koordinaten und Größe des kleinsten Rechtecks, welches den Wirkbereich der in den Schritten 525 bis 555 erzeugten Strokes zusätzlich einer definierten Polstergröße ("Padding") umschliesst. Die mit dem Rechteck korrespondierenden Pixel aus Puffer I 305 werden als neuer Puffer W 310 abgelegt. Fig. 18 illustriert grafisch den Inhalt des Puffers W als Element 900 (und Puffer I 305 als Element 805; die Puffer P, B und D sind hier ebenfalls sichtbar, jedoch nicht nummeriert). Fig. 19 illustriert den Puffer W 310 isoliert als Element 900, einen beispielhaften Stroke 1010 inklusive Wirkbereich 1005 und Aufpolsterung 905 darstellend. Fig. 20 illustriert die verschiedenen Puffer als separate Ebenen.
In Schritt 570 ermittelt der Stroke-Eingabeprozess 500 den äußeren Umfang ("Perimeter") des kumulierten Wirkbereiches und speichert diesen in Puffer D 325 (Element 1015). Die Werte in Puffer D 325 sind entweder 1 für Pixel auf dem Perimeter oder 0 für Pixel außerhalb desselben. Das Ermitteln des Perimeters kann auf verschiedene Weise erfolgen. Eine zweckmäßige Ausführungsform des vorliegenden Verfahrens analysiert den Inhalt des Puffers P 315 und ermittelt für jeden Pixel "p", zu welchem Wert die Inhalte der acht ihm direkt benachbarten Pixel sich aufsummieren. Nur wenn sich die Werte der acht Nachbarpixel zu 8 summieren oder "p" selber 0 ist, ist "p" nicht auf dem Perimeter. Wenn "p" aber auf dem Perimeter ist, wird der Wert 1 an entsprechend korrespondierender Stelle im Puffer Q 325 abgelegt, ansonsten der Wert 0.
Fig. 16 ist ein Flussdiagramm zur detaillierten Illustration eines Prozesses zur Objekterkennung. Dieser Prozess kann beispielsweise durch den Objekterkennungsprozeß 600 ausgeführt werden. Schritt 605 illustriert, dass der vorige Schritt 500 abgeschlossen wurde oder dass er parallel zu Schritt 500 ausgeführt wird, wie unten unter Fig. 22 ("online Modus") genauer dargelegt wird. So wie alle hier aufgeführten Schritte optional sein können, beschreibt Schritt 610 einen optionalen Schritt, in dem ermittelt werden kann, ob einer der Puffer W, P oder B mehr als "Z" Pixel enthält. Ist dies der Fall, können alle Puffer W, P und B um Faktor S <= 1 skaliert werden, um höchstens Z Pixel zu enthalten. Dieser Schritt kann die Ausfuhrungsgeschwindigkeit des Objekterkennungsprozesses 600 beschleunigen.
In Schritt 700 erzeugt der Objekterkennungsprozeß 600 Distanz-, Kosten- oder Graphentheoretisches Netzwerk aus Pixeln relativ zu den Puffern W, P, B und D, und benutzt dieses Netzwerk, um Pixel in einem Puffer R 330 (in Fig. 20 und 21 als Element 110 illustriert) als "innere Pixel" (mit dem Wert 1) oder "äußere Pixel" (mit dem Wert 0) zu markieren. Dieser Schritt wird in Fig. 17 genauer dargelegt und illustriert.
In Schritt 615 wird auf Puffer R 330 ein Gaußscher Weichzeichner oder eine ähnliche Weich- zeichnerfunktion angewendet, wobei dessen Filterkerngröße mit den Abmessungen von Puffer W 310 skaliert. Hierdurch wird sichergestellt, dass die Menge an erzeugter Kantenunschärfe relativ zur Größe des Fensters W ist, also kleinere Fenster W entsprechend weniger stark weichge- zeichnet werden als größere Fenster W. Der Effekt des Gaußschen Weichzeichners ist grafisch in Fig. 21 illustriert, in dem Element 1100 (den Puffer R 330 repräsentierend) durch den Gaußschen Weichzeichner zu Element 1105 transformiert wird. Eine Rampen-Schwellenwertfunktion T(p) erzeugt an den weichgezeichneten Kanten des Puffers R 330 saubere, weiche Kanten mit einer Rampe, die u.a. AHasing- Artefakte verhindert. Eine mögliche Schwellenwertfunktion lautet wie folgt (wobei "p" ein Pixel ist):
T(p)=
p < pO: 0
p >= pO und p < pl : (p - p0)/(pl - pO) p >= pl: l
Der Effekt der Schwellenwertfunktion ist grafisch in Fig. 21 illustriert wobei Element 1105 das durch Weichzeichner und Schwellenwertfunktion transformierte Element 1100 darstellt. Das Ergebnis dieser Transformationen kann anschließend (überschreibend) zurück in Puffer R 330 geschrieben werden.
Schritt 625 illustriert, dass Puffer R 330 um Faktor 1/S (also den Kehrwert aus Schritt 610) auf die ursprünglichen Abmessungen des Puffers W 310 skaliert werden kann. In Schritt 630 kann das Ergebnis aus Schritt 625 in den Puffer R 330 geschrieben werden. Schritt 635 sieht vor, dass der Puffer R 330 in den Puffer M zusammengemischt werden kann. Erfolgte die Eingabe durch das Pinselwerkzeug (wurde also "gemalt"), wird beim Zusammenmischen der Maximalwert der Quellpixel (Puffer R 330) oder der Zielpixel (Puffer M 335) verwendet; erfolgte die Eingabe hingegen durch das Löschwerkzeug (wurde also "radiert"), wird beim Zusammenmischen der Minimalwert von 1 - Quellpixel (Puffer R 330) oder 1 - Zielpixel (Puffer M 335) verwendet. Hierdurch wird sichergestellt, dass die Zusammenmischfunktion aufeinanderfolgende Ergebnisse (sowohl vom Pinsel- als auch vom Löschwerkzeug ausgehend) korrekt akkumuliert.
Fig. 17 ist ein Flussdiagramm, welches illustriert, wie ein Prozess zur Erzeugung eines Pixel- Distanz-Netzwerks und die Anwendung von Wegfmdungsalgorithmen in diesem Netzwerk benutzt werden, um Objektpixel zu ermitteln. Ziel dieses Flussdiagramms ist es, darzulegen, wie der kürzeste Weg zwischen einem beliebigen Pixel p in Puffer W 310, welches ein korrespondierendes Pixel mit Wert 1 in Puffer P 315 hat, zu Pixeln mit einem Wert von 1 in entweder Puffer B 320 oder Puffer D 325 gefunden werden kann. Den kürzesten Pfad zu ermitteln (im Folgenden als "Wegfindung" bezeichnet) kann auf verschiedene Weisen erreicht werden, etwa durch Anwendung des Dijkstra Algorithmus, des Bellman-Ford Algorithmus, des A* Such-Algorithmus, des Floyd- Warshall Algorithmus, des Johnson Algorithmus oder anderer geeigneter Algorithmen. Fig. 17 illustriert exemplarisch eine effiziente Methode, um diese Operation auszuführen und wendet dazu den Dijkstra Algorithmus und einen*Fibonacci-Heap als Datenstruktur an.
In Schritt 701 werden zunächst alle Pixel in Puffer R 330 mit dem Wert 0 initialisiert. Die Schritte 705 bis 745 iterieren über jedes Pixel p in Puffer W 310, das ebenfalls im Wirkbereich der Strokes liegt (also dessen jeweils korrespondierendes Pixel in Puffer P 315 den Wert 1 hat). In Schritt 710 wird geprüft, ob das mit p korrespondierende Pixel in Puffer B 320 oder Puffer D 325 den Wert 1 hat. Wenn keines der mit p korrespondierenden Pixel in Puffer B 320 oder Puffer D 325 den Wert 1 hat, wird in Schritt 735 am korrespondierenden Pixel in Puffer W 310 der Wert unendlich (bzw. ein Datentyp-Maximalwert bzw. ein sehr hoher Wert) abgelegt. Wenn jedoch mindestens eines der mit p korrespondierenden Pixel in Puffer B 320 oder Puffer D 325 den Wert 1 hat, wird in Schritt 715 p ein Distanzwert von 0 zugewiesen. In Schritt 720 wird geprüft (falls nicht bereits geschehen), ob das mit p korrespondierende Pixel mit Wert 1 in Puffer B 320 oder Puffer D 325 gefunden wurde. Lag es in Puffer D 325, wird in Schritt 725 das korrespondierende Pixel in Puffer R 330 auf Wert 0 gesetzt (und das Pixel damit als "äußeres" Pixel deklariert). Lag das korrespondierende Pixel mit Wert 1 aber in Puffer B 320, wird in Schritt 730 das korrespondierende Pixel in Puffer R 330 auf Wert 1 gesetzt (und das Pixel damit als "inneres" Pixel deklariert). Das Pixel p wird dann in Schritt 740 dem Fibonacci-Heap hinzugefügt, woraufhin der Prozess zu Schritt 705 zurückkehrt, um weiter durch alle Pixel p in Puffer W 310 zu iterieren, die auch im Wirkbereich des Strokes liegen, also deren korrespondierendes Pixel in Puffer P 315 den Wert 1 hat.
Wenn alle Pixel p dem Fibonacci-Heap hinzugefügt wurden, wird in Schritt 750 ein Pixel mit kleinstem Distanzwert ausgewählt. In Schritt 755 werden nun die Nachbarpixel q dieses Pixels p ausgelesen. In Schritt 760 wird nun die Summe aus einerseits den Distanzwerten von p sowie andererseits der p-q-Distanz errechnet. Die p-q-Distanz kann beispielsweise die euklidische Distanz zwischen den Farben in jedem der beiden Pixel sein, wobei deren jeweilige Rot-, Grün- und Blaukomponenten (in [0,1], ermittelt aus den Pixelfarben des Puffers W 310) als Koordinaten in der Distanzfunktion verwendet werden. In Schritt 765 wird geprüft, ob die in Schritt 760 ermittelte Summe kleiner als der Distanzwert von q ist. Ist dies der Fall, wird der Distanzwert von q auf den Wert, der in Schritt 760 ermittelten Summe (zurück-)gesetzt. Ist dies nicht der Fall, wird mit der Ausführung von Schritt 780 fortgefahren. In Schritt 770 wird der Fibonacci-Heap nach kleinstmöglichem Distanzwert neu sortiert. In Schritt 775 wird der Wert des mit q korrespondierenden Pixels in Puffer R 330 auf den Wert des Pixels in Puffer R 330 gesetzt, das mit Pixel p korrespondiert. In Schritt 780 wird geprüft, ob der Fibonacci-Heap leer ist. Ist er es nicht, wird der Prozess bei Schritt 750 fortgesetzt. Ist er es, kehrt der Prozess in Schritt 799 zu Schritt 615 in Fig. 16 zurück.
Fig. 18 ist eine grafische Illustration der Inhalte der Puffer W, I, P, B und D. Fig. 18 wird im Rahmen anderer Abbildungen genauer erläutert.
Fig. 19 ist eine grafische Illustration der Inhalte der Puffer W, P, B und D. Fig. 19 wird im Rahmen anderer Abbildungen genauer erläutert.
Fig. 20 ist eine grafische Illustration der Inhalte der Puffer R, D, B und P. Fig. 20 wird im Rahmen anderer Abbildungen genauer erläutert.
Fig. 21 ist eine grafische Illustration des Inhalts von Puffer R, Anwendung eines Gaußschen Weichzeichners und einer Rampen-Schwellenwertfunktion. Fig. 21 wird im Rahmen anderer Abbildungen genauer erläutert.
Fig. 22 ist ein Flussdiagramm zur Illustration eines Prozesses, in dem ein Endgerät Anwender- Eingaben parallel entgegennimmt und verarbeitet. Im in Fig. 14 beschriebenen Ablauf werden der Stroke-Eingabeprozess 500 und der Objekterkennungsprozeß 600 seriell, also nacheinander ausgeführt. Im in Fig. 22 dargestellten Prozess werden diese Schritte hingegen im Wesentlichen parallel ausgeführt, wobei der Objekterkennungsprozeß 600 (das "Wegfinden") im Wesentlichen durch die CPU 212, der Stroke-Eingabeprozess 500 ("malen") im Wesentlichen durch die GPU 214 ausgeführt wird.
In Schritt 1205 erhält das Endgerät ein aus Pixeln bestehendes digitales Photo (oder Zugriff auf ein solches). Dieses wird im Folgenden als Puffer I 305 referenziert. Der Puffer I 305 kann auf dem Display 240 des Endgerätes angezeigt werden. In oder vor Schritt 1210 wurde das Pinseloder Löschwerkzeug des Stroke-Eingabeprozesses 500 aktiviert (ähnlich wie in Schritt 505) und der Anwender hat durch Verschieben und Skalieren den sichtbaren Ausschnitt des Puffers I 305 anpassen können (ähnlich wie in Schritt 515 und 520).
In Schritt 1210 wird Puffer C 350 erzeugt. Dieser Puffer reflektiert den kumulierten Wirkbereich der Pinsel- und Lösch-Strokes, ähnlich Puffer P 315, wobei der Puffer C 350 aber auf das Display 240 gerendert wird, um dem Anwender visuelle Rückmeldung zu geben, da der Puffer P 315 ja nur den dann-aktuellen Pinsel- bzw. Löschwerkzeug-Wirkbereich enthält, der nur mit dem einzelnen, zugehörigen Stroke korrespondiert, der im dann aktuellen Lauf von Schritt 1220 bis 1240 getätigt wurde. Wie auch Puffer M 335 kann Puffer C 350 für alle Eingabe-Strokes fortbestehen. In den nachfolgenden Schritten ist zu beachten, dass alle Modifikationen an Puffer C 350 auch auf das Display 240 gerendert werden.
In Schritt 1215 macht der Anwender einen oder mehrere Strokes, währenddessen (parallel) Schritt 1220 ausgeführt wird. Auch diese Strokes werden in Puffer C 350 gespeichert.
In Schritt 1220 empfängt und verarbeitet das Endgerät eine Stroke-Eingabe des Anwenders als Unter-Sequenz, also als Teil der gesamten durch den Anwender getätigten Strokes. Schritt 1220 bis 1240 werden auf einem dedizierten Thread ausgeführt, wobei, abhängig von Arbeitslast und den technischen Möglichkeiten des Endgerätes, mehrere Instanzen der Schritte 1220 bis 1240 parallel auf jeweils eigenen Threads ausgeführt werden können. Die Länge der Subsequenz kann eine fixe Größe sein, die zum Beispiel durch Ablauf eines bestimmten Zeitraums oder durch eine bestimmte Anzahl traversierter Pixel bestimmt wird; sie kann aber auch dynamisch über die dann-aktuelle Arbeitslast der CPU 212 ermittelt werden: Unterliegt die CPU 212 zum Beispiel gerade vergleichsweise geringer Arbeitslast, kann die Länge einer Untersequenz entsprechend kürzer definiert werden. Die Untersequenz eines vom Anwender getätigten Strokes kann generell durch den Stroke-Eingabeprozess 500 ("malen") von der GPU 214 empfangen und verarbeitet werden, die parallel stattfindende Objekterkennung 600 ("Wegfindung") wird aber im Wesentlichen von der CPU 212 ausgeführt, wodurch die ideale Länge einer Untersequenz von der derzeitigen Arbeitslast der CPU 212 abgeleitet werden kann.
In Schritt 1225 wird der Wirkbereich der Stroke-Untersequenz in Puffer C 350 optisch derart hervorgehoben, dass dem Anwender visuell mitgeteilt wird, dass seine jeweilige Eingabe gerade verarbeitet wurde. Die visuelle Hervorhebung kann zum Beispiel durch Ausblenden, Veränderung von Helligkeit, Farbe oder Anwendung von Transparenzeffekten geschehen.
In Schritt 1230 erzeugt die GPU 214 die Puffer W (310), P (315), B (320) und D (325), entsprechend dem zuvor in Bezug auf Fig. 15 beschriebenen Prozess zur Erzeugung dieser Puffer, da eine Sequenz an Strokes durch Iteration zwischen den Schritten 525 und 545 verarbeitet werden kann (ein Durchlauf für jeden Stroke in der Sequenz). Schritt 550 wird in dieser Schleife jedoch ausgelassen, da das Rendern bereits durch Verwendung des Puffers C 350 geschieht.
In Schritt 1235 wird die Objekterkennung durch den Objekterkennungsprozeß 600 ausgeführt, wie in Fig. 16 zuvor beschrieben, wobei nun Schritt 635 (Zusarnmenmischen von Puffer R 330 in Puffer M 335) ebenfalls threadsafe ausgeführt wird, sodass die Ergebnisse der Stroke-Eingaben- Untersequenz eines jeden Threads, der die Schritte 1220 bis 1240 ausfuhrt, sequentiell in die richtige Reihenfolge gebracht werden. In Schritt 1240 wird geprüft, ob noch weitere Strokes zu verarbeiten sind. Solange dies der Fall ist, wird an Schritt 1215 fortgefahren.
Fig. 23 demonstriert als Illustration eine Benutzeroberfläche einer möglichen Ausführungsform. In dieser Illustration wird eine Fotografie 1320 dargestellt, die als Beispielmotiv eine Gießkanne 1325 zeigt. Des Weiteren werden Werkzeug-Auswahlknöpfe zum Beispiel für das Pinselwerkzeug ("malen") 1305 und das Löschwerkzeug ("löschen") 1310 sowie eine Möglichkeit zum Ein- und Ausschalten der automatischen Objekterkennung 1315 dargestellt. Weitere Werkzeug- Auswahlknöpfe können dargestellt werden, wie etwa Werkzeuge zur Beeinflussung der Benutzeroberfläche, zum erneuten Berechnen der Objekterkennung oder eine Auswahlpalette fotografischer Filter und Effekte.
Fig. 24 demonstriert als Illustration eine Benutzeroberfläche einer möglichen Ausführungsform, in der durch den Anwender getätigte Stroke-Eingaben entgegengenommen wurden. Die Linie 1405 illustriert Puffer B 310 und zeigt die Koordinaten des Strokes, die der Anwender getätigt hat. Das zum Zeichnen ausgewählte Werkzeug ist das Pinselwerkzeug 1305. Der Wirkbereich des Pinselwerkzeugs ist durch den Kreis 1415 illustriert. Die Fläche 1410 (im Rautenmuster kreuzschraffiert) ergibt sich durch Kumulation der Wirkbereiche endang des Pfades, der durch den Stroke beschrieben wurde und in Puffer P 315 abgelegt ist.
Fig. 25 demonstriert als Illustration eine Benutzeroberfläche einer möglichen Aus führungs form, in der durch den Anwender getätigte Stroke-Eingaben entgegengenommen und durch den Objekterkennungsprozeß verarbeitet wurden. Das Ergebnis der Objekterkennung ist durch Bereich 1505 (diagonale Schrägschraffur) dargestellt. Der Bereich 1505 liegt innerhalb des kumulierten Wirkbereichs 1410 und korrespondiert mit den Pixeln in Puffer M 335. Der Bereich 1505 umfasst auch den Löschbereich 1510, dessen Löschung in Fig. 26 und Fig. 27 beschrieben wird.
Fig. 26 demonstriert als Illustration eine Benutzeroberfläche einer möglichen Ausfuhrungsform, in der eine durch den Anwender getätigte Stroke-Eingabe nahe dem Löschbereich 1510 erfolgte, da der Löschbereich 1510 über die tatsächlichen Objektkanten hinausragt und zur Korrektur entfernt werden soll. Die Zeile 1605 zeigt den Pfad aus den Koordinaten des Strokes, die der Anwender getätigt hat. Der Bereich 1610 illustriert den kumulierten Wirkbereich des in Fig. 26 angewendete Löschwerkzeugs. Der Bereich 1615 illustriert den Wirkbereich des in Fig. 26 verwendeten Löschwerkzeugs zum Zeitpunkt der Beendigung des getätigten Strokes.
Fig. 27 demonstriert als Illustration eine Benutzeroberfläche einer möglichen Ausfuhrungsform, in der das Ergebnis aus Fig. 26 dargestellt wird. Der Bereich 1705 (in diagonaler Schrägschraffur dargestellt) illustriert das überarbeitete Objekt, bei dem ein im Bereich 1610 identifiziertes Objekt 1510 vom Bereich 1505 entfernt wurde. Nun kann ein Effekt oder Filter selektiv auf das erkannte Objekt im Bereich 1705 angewendet werden.

Claims

Computer-implementiertes Verfahren und System zur Erkennung eines mittels Stroke-Eingabe eines Anwenders markierten Objekts anhand von Pixeln in einem digitalen Bild
Patentansprüche
Computerimplementierter digitaler Unschärfefüter zur Erzeugung eines einem falsch fokus- sierten Linsensystem entsprechenden Unschärfeeindrucks in einem digital in einem Bild- Speicher ursprünglich vorliegenden Bild, dadurch gekennzeichnet, daß für jeden Bildwert jeden Farbkanals jeden Punktes des ursprünglich vorliegenden Bildes anhand einer Faltungsformel mit einem Filterkern der die Form eines angestrebten optischen Zerstreuungskreises aufweist, ein neuer Bildwert erzeugt wird und aus den so digital erzeugten neuen Bildwerten ein unscharfes Bild als Ergebnis erhalten wird.
Computerimplementierter digitaler Unschärfefüter zur Erzeugung eines einem falsch fokus- sierten Linsensystem entsprechenden Unschärfeeindrucks in einem digital in einem Bild- Speicher ursprünglich vorliegenden Bild nach Anspruch 1 , dadurch gekennzeichnet, daß für das ursprünglich vorliegende Bild anhand der Faltungsformel mit dem Filterkern der die Form des angestrebten optischen Zerstreuungskreises aufweist, mehrere verschieden unscharfe Bilder durch Verwendung mehrerer unterschiedlich großer Zerstreuungskreise erhalten und abgespeichert werden und diese sodann digital— vorzugsweise vermittels eines Alpha-Blendings— ineinander geblendet werden und so das unscharfe Bild als Ergebnis erhalten wird.
Computerimplementierter digitaler Unschärfefüter zur Erzeugung eines einem falsch fokus- sierten Linsensystem entsprechenden Unschärfeeindrucks in einem digital in einem Büd- Speicher ursprünglich vorliegenden Büd nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Faltungsformel für jeden Bildpunkt n lautet:
U * 9) (n) = , f (k)g(n - k)
fce£> /«/2j , L/«/2j] x [- LA/2J , [h/2\] C Z x
/ : D [0, 1] C R e/ : Z X Z [0, 1] C R
c = ( L «,/2j , L /./2j ) G Z2
wo f(x) den Wert des Filterkernes am Pixel (c - x) angibt,
und g(x) den Wert des Farbkanals des Bildes am Pixel x angibt,
wobei L-^ J der auf die nächst kleinste ganze Zahl abgerundete Wert von x ist,
sowie ξν die Filterkernbreite, fh die Filterkernhöhe, gw die Bildbreite und gh die Bildhöhe angibt.
4. Computerimplementierter digitaler Unschärfefilter zur Erzeugung eines einem falsch fokus- sierten Linsensystem entsprechenden Unschärfeeindrucks in einem digital in einem Bild- Speicher ursprünglich vorliegenden Bild nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß das mittels des digitalen Unschärfefilters erhaltene unscharfe Bild wiederum digital abgespeichert wird, und zudem auch aus dem für jeden Bildwert jeden Farbkanals jeden Punktes des ursprünglich vorliegenden Bildes ein Luminanzwert als für jeden Farbkanal gewichtete Summe der Farbanteile gebildet wird und aus diesen Lurninanzwerten ein Luminanzbild des ursprünglich vorliegenden Bildes erhalten und das so erhaltene Luminanzbild mittels eines digitalen Hochpassfilters gefiltert wird, der alle Luminanzbildwerte oberhalb einer gewählten Schwelle als Spitzlichter er- kennt und in das so hochpassgefilterte Luminanzbild - vorzugsweise mit ihren Bildwerten - aufnimmt und so ein digitales ursprüngliches Spitzlichterbild erhalten und abgespeichert wird, und daß für jeden Bildwert jeden Farbkanals jeden Punktes des ursprünglichen Spitzlichterbildes anhand der Faltungsformel mit dem Filterkern der die Form des angestrebten optischen Zerstreuungskreises aufweist, wiederum der jeweilige neue Bildwert für ein unscharfes Spitzlichterbild erzeugt wird und aus den so digital erzeugten neuen Bildwerten das unscharfe Spitzlichterbild erhalten wird, und sodann das unscharfe Spitzlichterbild mit dem abgespeicherten neuen unscharfen Bild digital - vorzugsweise vermittels eines Alpha- Blend ngs - ineinander geblendet und so das ineinander geblendete Bild als Ergebnis erhalten wird.
5. Computerimplementierter digitaler Unschärfefilter zur Erzeugung eines einem falsch fokus- sierten Linsensystem entsprechenden Unschärfeeindrucks in einem digital in einem Bild- Speicher ursprünglich vorliegenden Bild nach Anspruch 4, dadurch gekennzeichnet, daß für das ursprüngliche Spitzlichterbild anhand der Faltungsformel mit dem Filterkern der die Form des angestrebten optischen Zerstreuungskreises aufweist, mehrere unscharfe Bilder durch Verwendung mehrerer unterschiedlich großer Zerstreuungskreise erhalten und abgespeichert werden und diese sodann digital - vorzugsweise vermittels eines Alpha- Blend ngs - ineinander geblendet werden und so das unscharfe Spitzlichterbild als Ergebnis erhalten wird.
6. Selektiver computerimplementierter digitaler Unschärfefilter zur Erzeugung eines einem falsch fokussierten Linsensystem entsprechenden Unschärfeeindrucks in einem digital in einem Bild-Speicher ursprünglich vorliegenden Bild vermittels Bildextrapolation in einen Selektions-Bereich hinein, dadurch gekennzeichnet, daß zunächst ein Bildbereich vermittels einer getätigten digitalen Markierung— vorzugsweise durch eine sogenannte Stroke-Eingabe auf einem berührungsempfindlichen Büdschirm— in dem ursprünglich vorliegenden Bild selektiert und der so erhaltene Selektions-Bereich des ursprünglichen Bildes festgelegt und dieser Selektions-Bereich dann von den außerhalb seiner Grenzen befindlichen Bildbestandteilen freigestellt als Selektions-Bild abgespeichert wird, sodann der außerhalb der Grenzen des Selektions-Bereichs befindliche Bildbereich in den Randbereich des Selektions-Bereichs hinein extrapoliert wird, indem die dortigen Bildwerte durch Bildwerte aus der Bildumgebung von außerhalb des Selektions-Bereichs ersetzt werden, und aus dem so modifizierten digital im Bild-Speicher vorliegenden Bild— in gleicher Weise, wie aus dem ursprünglich digital in einem Bild-Speicher vorliegenden Bild - durch einen computerimplementierten digitalen Unschärfefilter nach einem der Ansprüche 1 bis 5 ein Bild mit einem, dem falsch fokussierten Linsensystem entsprechenden Unschärfeein- druck erzeugt wird, und das abgespeicherte Selektions-Bild sodann digital— vorzugsweise vermittels eines Alpha- Blendings - hierin eingeblendet und so das ineinander geblendete Bild als Ergebnis erhalten wird.
7. Selektiver computerimplementierter digitaler Unschärfefilter zur Erzeugung eines einem falsch fokussierten Linsensystem entsprechenden Unschärfeeindrucks in einem digital in einem Bild-Speicher ursprünglich vorliegenden Bild vermittels Bildextrapolation aus einem Selektions-Bereich heraus, dadurch gekennzeichnet, daß
zunächst ein Bildbereich vermittels einer getätigten digitalen Markierung— vorzugsweise durch eine sogenannte Stroke-Eingabe auf einem berührungsempfindlichen Büdschirm - in dem ursprünglich vorliegenden Bild selektiert und der so erhaltene Selektions-Bereich des ursprünglichen Bildes festgelegt und dieser Selektions-Bereich dann von den außerhalb seiner Grenzen befindlichen Bildbestandteilen freigestellt als Selektions-Bild abgespeichert wird, und aus dem abgespeicherten Selektions-Bild— in gleicher Weise, wie aus dem ursprünglich digital in einem Bild-Speicher vorliegenden Bild - durch einen computerimplementierten digitalen Unschärfefilter nach einem der Ansprüche 1 bis 5 ein Bild mit einem, dem falsch fokussierten Linsensystem entsprechenden Unschärfeeindruck erzeugt wird, und
vom innerhalb der Grenzen des Selektions-Bereichs befindlichen Bildbereich heraus in den Randbereich des außerhalb des Selektions-Bereichs befindlichen Bildes extrapoliert wird, indem die dortigen Bildwerte durch Bildwerte aus der Bildumgebung von innerhalb des Selektions-Bereichs ersetzt werden, und
das abgespeicherte Selektions-Bild sodann digital - vorzugsweise vermittels eines Alpha- Blendings— hierin eingeblendet und so das ineinander geblendete Bild als Ergebnis erhalten wird.
8. Computersystem zur digitalen Filterung von Bildern mit einem Speicher und einem Prozessor, dadurch gekennzeichnet, daß es vermittels eines Computerprogramms zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 7 eingerichtet ist.
9. Ein Computersystem mit einem computerlesbaren Medium, welches Instruktionen enthält, die ausgeführt das Verfahren nach einem der Ansprüche 1 bis 7 durchführen.
10. Computerprogramm, das Instruktionen aufweist, die zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 7 eingerichtet sind.
11. Computerprogrammprodukt, welches ein computerlesbares Medium mit Computerprogramm-Code-Mitteln aufweist, bei dem jeweils nach Laden des Computerprogramms in einen Computer der Computer durch das Programm zur Durchführving des Verfahrens nach einem der Ansprüche 1 bis 7 eingerichtet ist.
12. Computerprogrammprodukt, welches ein Computerprogramm auf einem elektronischen Signal aufweist, bei dem jeweils nach Laden des Computerprogramms in einen Computer der Computer zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 7 eingerichtet ist.
PCT/DE2014/000334 2013-06-26 2014-06-26 Computerimplementierter digitaler unschärfefilter zur erzeugung eines einem falsch fokussierten linsensystem entsprechenden unschärfeeindrucks in einem digital in einem bild-speicher ursprünglich vorliegenden bild WO2014206394A2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE112014002999.8T DE112014002999A5 (de) 2013-06-26 2014-06-26 Computerimplementierter digitaler Unschärfefilter zur Erzeugung eines einem falsch fokussierten Linsensystem entsprechenden Unschärfeeindrucks in einem digital in einem Bild-Speicher ursprünglich vorliegenden Bild

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102013010956 2013-06-26
DE102013010956.6 2013-06-26

Publications (3)

Publication Number Publication Date
WO2014206394A2 true WO2014206394A2 (de) 2014-12-31
WO2014206394A3 WO2014206394A3 (de) 2015-02-26
WO2014206394A9 WO2014206394A9 (de) 2015-04-16

Family

ID=51627163

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2014/000334 WO2014206394A2 (de) 2013-06-26 2014-06-26 Computerimplementierter digitaler unschärfefilter zur erzeugung eines einem falsch fokussierten linsensystem entsprechenden unschärfeeindrucks in einem digital in einem bild-speicher ursprünglich vorliegenden bild

Country Status (2)

Country Link
DE (1) DE112014002999A5 (de)
WO (1) WO2014206394A2 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111915497A (zh) * 2019-05-09 2020-11-10 杭州睿琪软件有限公司 一种图像黑白增强方法、装置、电子设备和可读存储介质
US11580624B2 (en) * 2020-03-26 2023-02-14 Fujifilm Business Innovation Corp. Image processing system, image processing apparatus, and non-transitory computer readable medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020119601A1 (de) 2020-07-24 2022-01-27 Arnold & Richter Cine Technik Gmbh & Co. Betriebs Kg Hintergrundwiedergabesystem

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7469071B2 (en) * 2006-02-14 2008-12-23 Fotonation Vision Limited Image blurring

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111915497A (zh) * 2019-05-09 2020-11-10 杭州睿琪软件有限公司 一种图像黑白增强方法、装置、电子设备和可读存储介质
CN111915497B (zh) * 2019-05-09 2023-11-03 杭州睿琪软件有限公司 一种图像黑白增强方法、装置、电子设备和可读存储介质
US11580624B2 (en) * 2020-03-26 2023-02-14 Fujifilm Business Innovation Corp. Image processing system, image processing apparatus, and non-transitory computer readable medium

Also Published As

Publication number Publication date
WO2014206394A9 (de) 2015-04-16
WO2014206394A3 (de) 2015-02-26
DE112014002999A5 (de) 2016-04-21

Similar Documents

Publication Publication Date Title
DE102020002964A1 (de) Verwenden eines neuronalen Netzwerks mit einer Zwei-Strom Encoder-Architektur zur Erzeugung digitaler Kompositbilder
DE102017010210A1 (de) Bild-Matting mittels tiefem Lernen
DE102019005938A1 (de) Intelligentes Identifizieren von Ersetzungsbereichen zum Mischen und Ersetzen von Personen in Gruppenporträts
DE69734694T2 (de) Automatisches Bildbeschneiden
DE112020003794T5 (de) Tiefenbewusste Fotobearbeitung
DE102019007196A1 (de) Identifizieren von Zielobjekten unter Nutzung der skalierungsdiversen Segmentierung dienender neuronaler Netzwerke
DE102018006317A1 (de) Tiefe neurale Netzwerke für hervorstechenden Inhalt für eine effiziente Segmentierung eines digitalen Objekts
DE102015010214A1 (de) Erzeugung von Tiefenkarten
US9813614B2 (en) Method and system for analog/digital image simplification and stylization
DE102019008221A1 (de) Interaktives Bildmattieren unter Verwendung neuronaler Netze
DE102011078662A1 (de) Erfassen und Erzeugen von Bildern mit hohem Dynamikbereich
DE112007001788T5 (de) Bildlayoutbeschränkungserzeugung
DE10319118A1 (de) Verfahren und Vorrichtung zur Parametrisierten Schärfung und Glättung
DE202011110907U1 (de) Markierungsmenüs für Mehrfachberührung und richtungsabhängige musterbildende Gesten
DE112012005827T5 (de) Bearbeiten von Medien unter Verwendung von graphischer Darstellung der Medien
DE102020007951A1 (de) Einsetzen eines der Einfärbung dienenden neuronalen Netzwerkes zum Generieren von eingefärbten Bildern auf Grundlage interaktiver Farbkanten
DE102012016160A1 (de) Bilderfassung für eine spätere Nachfokussierung oder Fokusmanipulation
DE102019001695A1 (de) Generieren von verbesserten Digitalbildern durch selektives Transformieren von Rasterbildern in Vektorzeichnungssegmente
DE112016005809T5 (de) Lichtfeld-Rendering eines Bildes unter Verwendung variabler Rechenkomplexität
DE102017005964A1 (de) Techniken zum Auswählen von Objekten in Bildern
DE112007001789T5 (de) Bestimmung und Verwendung einer dominanten Linie eines Bildes
DE102015000498A1 (de) Geometrisches und parametrisches Modifizieren einer Nutzereingabe als Zeichenhilfe
WO2014206394A2 (de) Computerimplementierter digitaler unschärfefilter zur erzeugung eines einem falsch fokussierten linsensystem entsprechenden unschärfeeindrucks in einem digital in einem bild-speicher ursprünglich vorliegenden bild
DE112016006833T5 (de) Verbesserung von kanten in bildern unter verwendung von tiefeninformationen
DE102018007146A1 (de) Ölgemälde-Strichsimulation mittels eines neuronalen Netzwerks

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14776981

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 112014002999

Country of ref document: DE

REG Reference to national code

Ref country code: DE

Ref legal event code: R225

Ref document number: 112014002999

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14776981

Country of ref document: EP

Kind code of ref document: A2