{
  "__type": "IngestedDoc",
  "__tag": 4010,
  "_content": {
    "Notes": {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The radius of each blob is approximately "
            },
            {
              "__type": "InlineMath",
              "__tag": 4057,
              "value": "\\sqrt{2}\\sigma"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " for a 2-D image and "
            },
            {
              "__type": "InlineMath",
              "__tag": 4057,
              "value": "\\sqrt{3}\\sigma"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " for a 3-D image."
            }
          ]
        }
      ],
      "title": [],
      "level": 0,
      "target": null
    },
    "Warns": {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [],
      "level": 0,
      "target": null
    },
    "Raises": {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [],
      "level": 0,
      "target": null
    },
    "Yields": {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [],
      "level": 0,
      "target": null
    },
    "Methods": {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [],
      "level": 0,
      "target": null
    },
    "Returns": {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Parameters",
          "__tag": 4026,
          "children": [
            {
              "__type": "DocParam",
              "__tag": 4016,
              "name": "A",
              "annotation": "(n, image.ndim + sigma) ndarray",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "A 2d array with each row representing 2 coordinate values for a 2D image, or 3 coordinate values for a 3D image, plus the sigma(s) used. When a single sigma is passed, outputs are: "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "(r, c, sigma)"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " or "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "(p, r, c, sigma)"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " where "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "(r, c)"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " or "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "(p, r, c)"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " are coordinates of the blob and "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "sigma"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " is the standard deviation of the Gaussian kernel which detected the blob. When an anisotropic gaussian is used (sigmas per dimension), the detected sigma is returned for each dimension."
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "title": [],
      "level": 0,
      "target": null
    },
    "Summary": {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Finds blobs in the given grayscale image."
            }
          ]
        }
      ],
      "title": [],
      "level": 0,
      "target": null
    },
    "Receives": {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [],
      "level": 0,
      "target": null
    },
    "Warnings": {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [],
      "level": 0,
      "target": null
    },
    "Attributes": {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [],
      "level": 0,
      "target": null
    },
    "Parameters": {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Parameters",
          "__tag": 4026,
          "children": [
            {
              "__type": "DocParam",
              "__tag": 4016,
              "name": "image",
              "annotation": "ndarray",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Input grayscale image, blobs are assumed to be light on dark background (white on black)."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "DocParam",
              "__tag": 4016,
              "name": "min_sigma",
              "annotation": "scalar or sequence of scalars, optional",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Minimum standard deviation for Gaussian kernel. Keep this value low to detect smaller blobs. The standard deviation of the Gaussian kernel is given either as a sequence for each axis, or as a single number, in which case it is equal for all axes."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "DocParam",
              "__tag": 4016,
              "name": "max_sigma",
              "annotation": "scalar or sequence of scalars, optional",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The maximum standard deviation for Gaussian kernel. Keep this high to detect larger blobs. The standard deviation of the Gaussian kernel is given either as a sequence for each axis, or as a single number, in which case it is equal for all axes."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "DocParam",
              "__tag": 4016,
              "name": "sigma_ratio",
              "annotation": "float, optional",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The ratio between the standard deviation of Gaussian Kernels used for computing the Difference of Gaussians"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "DocParam",
              "__tag": 4016,
              "name": "threshold",
              "annotation": "float or None, optional",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "An absolute threshold applied to the internally computed stack of Difference-of-Gaussian (DoG) images. Local maxima in DoG smaller than "
                    },
                    {
                      "__type": "ParamRef",
                      "__tag": 4071,
                      "name": "threshold"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " are ignored. Reduce this to detect blobs with lower intensities."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "DocParam",
              "__tag": 4016,
              "name": "overlap",
              "annotation": "float, optional",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "A value between 0 and 1. If the area of two blobs overlaps by a fraction greater than "
                    },
                    {
                      "__type": "ParamRef",
                      "__tag": 4071,
                      "name": "threshold"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", the smaller blob is eliminated."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "DocParam",
              "__tag": 4016,
              "name": "threshold_rel",
              "annotation": "DEPRECATED",
              "desc": [
                {
                  "__type": "Admonition",
                  "__tag": 4056,
                  "kind": "deprecated",
                  "base_type": "neutral",
                  "children": [
                    {
                      "__type": "AdmonitionTitle",
                      "__tag": 4055,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "deprecated 0.27"
                        }
                      ]
                    },
                    {
                      "__type": "Paragraph",
                      "__tag": 4045,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "Starting with version 0.27, "
                        },
                        {
                          "__type": "ParamRef",
                          "__tag": 4071,
                          "name": "threshold_rel"
                        },
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": " is deprecated. Since "
                        },
                        {
                          "__type": "InlineCode",
                          "__tag": 4051,
                          "value": "max(dog_space) * threshold_rel"
                        },
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": " was used to calculate the minimum peak intensity, this parameters effect was difficult to reason about. Use "
                        },
                        {
                          "__type": "ParamRef",
                          "__tag": 4071,
                          "name": "threshold"
                        },
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": " in conjunction with "
                        },
                        {
                          "__type": "ParamRef",
                          "__tag": 4071,
                          "name": "prescale"
                        },
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": " instead."
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "__type": "DocParam",
              "__tag": 4016,
              "name": "exclude_border",
              "annotation": "tuple of ints, int, or False, optional",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "If tuple of ints, the length of the tuple must match the input array's dimensionality.  Each element of the tuple will exclude peaks from within "
                    },
                    {
                      "__type": "ParamRef",
                      "__tag": 4071,
                      "name": "exclude_border"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "-pixels of the border of the image along that dimension. If nonzero int, "
                    },
                    {
                      "__type": "ParamRef",
                      "__tag": 4071,
                      "name": "exclude_border"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " excludes peaks from within "
                    },
                    {
                      "__type": "ParamRef",
                      "__tag": 4071,
                      "name": "exclude_border"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "-pixels of the border of the image. If zero or False, peaks are identified regardless of their distance from the border."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "DocParam",
              "__tag": 4016,
              "name": "prescale",
              "annotation": "{'minmax', 'none', 'legacy'}, optional",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Method for rescaling (normalizing) "
                    },
                    {
                      "__type": "ParamRef",
                      "__tag": 4071,
                      "name": "image"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " before processing. Note that rescaling impacts the ranges of the internally computed Difference-of-Gaussian (DoG) images, and therefore also the choice of "
                    },
                    {
                      "__type": "ParamRef",
                      "__tag": 4071,
                      "name": "threshold"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "."
                    }
                  ]
                },
                {
                  "__type": "DefList",
                  "__tag": 4033,
                  "children": [
                    {
                      "__type": "DefListItem",
                      "__tag": 4037,
                      "dt": {
                        "__type": "Paragraph",
                        "__tag": 4045,
                        "children": [
                          {
                            "__type": "InlineCode",
                            "__tag": 4051,
                            "value": "'minmax'"
                          }
                        ]
                      },
                      "dd": [
                        {
                          "__type": "Paragraph",
                          "__tag": 4045,
                          "children": [
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": "Normalize "
                            },
                            {
                              "__type": "ParamRef",
                              "__tag": 4071,
                              "name": "image"
                            },
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": " between 0 and 1 regardless of dtype. After     normalization, the resulting array will have a floating dtype."
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "__type": "DefListItem",
                      "__tag": 4037,
                      "dt": {
                        "__type": "Paragraph",
                        "__tag": 4045,
                        "children": [
                          {
                            "__type": "InlineCode",
                            "__tag": 4051,
                            "value": "'none'"
                          }
                        ]
                      },
                      "dd": [
                        {
                          "__type": "Paragraph",
                          "__tag": 4045,
                          "children": [
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": "Don't prescale the value range of "
                            },
                            {
                              "__type": "ParamRef",
                              "__tag": 4071,
                              "name": "image"
                            },
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": " at all and return a     copy of "
                            },
                            {
                              "__type": "ParamRef",
                              "__tag": 4071,
                              "name": "image"
                            },
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": ". Useful when "
                            },
                            {
                              "__type": "ParamRef",
                              "__tag": 4071,
                              "name": "image"
                            },
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": " has already been rescaled."
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "__type": "DefListItem",
                      "__tag": 4037,
                      "dt": {
                        "__type": "Paragraph",
                        "__tag": 4045,
                        "children": [
                          {
                            "__type": "InlineCode",
                            "__tag": 4051,
                            "value": "'legacy'"
                          }
                        ]
                      },
                      "dd": [
                        {
                          "__type": "Paragraph",
                          "__tag": 4045,
                          "children": [
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": "Normalize only if "
                            },
                            {
                              "__type": "ParamRef",
                              "__tag": 4071,
                              "name": "image"
                            },
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": " has an integer dtype. If "
                            },
                            {
                              "__type": "ParamRef",
                              "__tag": 4071,
                              "name": "image"
                            },
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": " is of     floating dtype, it is left alone. See "
                            },
                            {
                              "__type": "CrossRef",
                              "__tag": 4002,
                              "value": ".img_as_float",
                              "reference": {
                                "__type": "RefInfo",
                                "__tag": 4000,
                                "module": "skimage",
                                "version": "*",
                                "kind": "api",
                                "path": "skimage.util.dtype:img_as_float"
                              },
                              "kind": "module"
                            },
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": " for     more details."
                            }
                          ]
                        },
                        {
                          "__type": "Admonition",
                          "__tag": 4056,
                          "kind": "warning",
                          "base_type": "warning",
                          "children": [
                            {
                              "__type": "AdmonitionTitle",
                              "__tag": 4055,
                              "children": [
                                {
                                  "__type": "Text",
                                  "__tag": 4046,
                                  "value": "warning "
                                }
                              ]
                            },
                            {
                              "__type": "DefList",
                              "__tag": 4033,
                              "children": [
                                {
                                  "__type": "DefListItem",
                                  "__tag": 4037,
                                  "dt": {
                                    "__type": "Paragraph",
                                    "__tag": 4045,
                                    "children": [
                                      {
                                        "__type": "Text",
                                        "__tag": 4046,
                                        "value": "The rescaling and the effect of "
                                      },
                                      {
                                        "__type": "ParamRef",
                                        "__tag": 4071,
                                        "name": "threshold"
                                      },
                                      {
                                        "__type": "Text",
                                        "__tag": 4046,
                                        "value": " will depend on the"
                                      }
                                    ]
                                  },
                                  "dd": [
                                    {
                                      "__type": "Paragraph",
                                      "__tag": 4045,
                                      "children": [
                                        {
                                          "__type": "Text",
                                          "__tag": 4046,
                                          "value": "dtype of "
                                        },
                                        {
                                          "__type": "ParamRef",
                                          "__tag": 4071,
                                          "name": "image"
                                        },
                                        {
                                          "__type": "Text",
                                          "__tag": 4046,
                                          "value": ". For consistent behavior we recommend     "
                                        },
                                        {
                                          "__type": "InlineCode",
                                          "__tag": 4051,
                                          "value": "'minmax'"
                                        },
                                        {
                                          "__type": "Text",
                                          "__tag": 4046,
                                          "value": "."
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "title": [],
      "level": 0,
      "target": null
    },
    "Extended Summary": {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Blobs are found using the Difference of Gaussian (DoG) method "
            },
            {
              "__type": "FootnoteReference",
              "__tag": 4066,
              "label": "1"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "FootnoteReference",
              "__tag": 4066,
              "label": "2"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". For each blob found, the method returns its coordinates and the standard deviation of the Gaussian kernel that detected the blob."
            }
          ]
        }
      ],
      "title": [],
      "level": 0,
      "target": null
    },
    "Other Parameters": {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [],
      "level": 0,
      "target": null
    }
  },
  "_ordered_sections": [
    "Summary",
    "Extended Summary",
    "Parameters",
    "Returns",
    "Yields",
    "Receives",
    "Raises",
    "Warns",
    "Other Parameters",
    "Attributes",
    "Methods",
    "Notes",
    "Warnings"
  ],
  "item_file": "/dev/scikit-image/src/skimage/feature/blob.py",
  "item_line": 239,
  "item_type": "function",
  "aliases": [
    "skimage.feature.blob_dog"
  ],
  "example_section_data": {
    "__type": "Section",
    "__tag": 4015,
    "children": [
      {
        "__type": "Code",
        "__tag": 4050,
        "value": "from skimage import data, feature\ncoins = data.coins()\nfeature.blob_dog(coins, threshold=.05, min_sigma=10, max_sigma=40)\n",
        "execution_status": "success"
      }
    ],
    "title": [],
    "level": 0,
    "target": null
  },
  "see_also": [
    {
      "__type": "SeeAlsoItem",
      "__tag": 4028,
      "name": {
        "__type": "CrossRef",
        "__tag": 4002,
        "value": "skimage.filters.difference_of_gaussians",
        "reference": {
          "__type": "LocalRef",
          "__tag": 4022,
          "kind": "module",
          "path": "skimage.filters._gaussian:difference_of_gaussians"
        },
        "kind": "module"
      },
      "descriptions": [],
      "type": null
    }
  ],
  "signature": {
    "__type": "SignatureNode",
    "__tag": 4029,
    "kind": "function",
    "parameters": [
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "image",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "POSITIONAL_OR_KEYWORD",
        "default": {
          "__type": "Empty",
          "__tag": 4031
        }
      },
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "min_sigma",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "POSITIONAL_OR_KEYWORD",
        "default": "1"
      },
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "max_sigma",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "POSITIONAL_OR_KEYWORD",
        "default": "50"
      },
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "sigma_ratio",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "POSITIONAL_OR_KEYWORD",
        "default": "1.6"
      },
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "threshold",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "POSITIONAL_OR_KEYWORD",
        "default": "0.5"
      },
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "overlap",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "POSITIONAL_OR_KEYWORD",
        "default": "0.5"
      },
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "threshold_rel",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "KEYWORD_ONLY",
        "default": "<DEPRECATED>"
      },
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "exclude_border",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "KEYWORD_ONLY",
        "default": "False"
      },
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "prescale",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "KEYWORD_ONLY",
        "default": "legacy"
      }
    ],
    "return_annotation": {
      "__type": "Empty",
      "__tag": 4031
    },
    "target_name": "blob_dog"
  },
  "references": [
    ".. [1] https://en.wikipedia.org/wiki/Blob_detection#The_difference_of_Gaussians_approach",
    ".. [2] Lowe, D. G. \"Distinctive Image Features from Scale-Invariant",
    "    Keypoints.\" International Journal of Computer Vision 60, 91–110 (2004).",
    "    https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf",
    "    :DOI:`10.1023/B:VISI.0000029664.99615.94`"
  ],
  "qa": "skimage.feature.blob:blob_dog",
  "arbitrary": [],
  "local_refs": [
    "A",
    "exclude_border",
    "image",
    "max_sigma",
    "min_sigma",
    "overlap",
    "prescale",
    "sigma_ratio",
    "threshold",
    "threshold_rel"
  ]
}