{
  "__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": "InlineRole",
              "__tag": 4003,
              "value": "sigma",
              "domain": null,
              "role": null,
              "inventory": null
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". Computation of Determinant of Hessians is independent of the standard deviation. Therefore detecting larger blobs won't take more time. In methods line "
            },
            {
              "__type": "CrossRef",
              "__tag": 4002,
              "value": "blob_dog",
              "reference": {
                "__type": "LocalRef",
                "__tag": 4022,
                "kind": "module",
                "path": "skimage.feature.blob:blob_dog"
              },
              "kind": "module"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "CrossRef",
              "__tag": 4002,
              "value": "blob_log",
              "reference": {
                "__type": "LocalRef",
                "__tag": 4022,
                "kind": "module",
                "path": "skimage.feature.blob:blob_log"
              },
              "kind": "module"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " the computation of Gaussians for larger "
            },
            {
              "__type": "InlineRole",
              "__tag": 4003,
              "value": "sigma",
              "domain": null,
              "role": null,
              "inventory": null
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " takes more time. The downside is that this method can't be used for detecting blobs of radius less than "
            },
            {
              "__type": "InlineRole",
              "__tag": 4003,
              "value": "3px",
              "domain": null,
              "role": null,
              "inventory": null
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " due to the box filters used in the approximation of Hessian Determinant."
            }
          ]
        }
      ],
      "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": "ndarray of shape (n, 3)",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "A 2d array with each row representing 3 values, "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "(y,x,sigma)"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " where "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "(y,x)"
                    },
                    {
                      "__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 of the Hessian Matrix whose determinant detected the blob."
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "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": "2D ndarray",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Input grayscale image. Blobs can either be light on dark or vice versa."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "DocParam",
              "__tag": 4016,
              "name": "min_sigma",
              "annotation": "float, optional",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The minimum standard deviation for Gaussian Kernel used to compute Hessian matrix. 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": "float, optional",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The maximum standard deviation for Gaussian Kernel used to compute Hessian matrix. Keep this value 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": "num_sigma",
              "annotation": "int, optional",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The number of evenly spaced values for standard deviation of the Gaussian kernel to consider on the closed interval "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "[min_sigma, max_sigma]"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "."
                    }
                  ]
                }
              ]
            },
            {
              "__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 Determinant-of-Hessian (DoH) images. Local maxima in DoH 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": "log_scale",
              "annotation": "bool, optional",
              "desc": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "If set intermediate values of standard deviations are interpolated using a logarithmic scale to the base "
                    },
                    {
                      "__type": "InlineRole",
                      "__tag": 4003,
                      "value": "10",
                      "domain": null,
                      "role": null,
                      "inventory": null
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ". If not, linear interpolation is used."
                    }
                  ]
                }
              ]
            },
            {
              "__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(doh_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": "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 Determinant-of-Hessian (DoH) 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 scaling 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 Determinant of Hessian method "
            },
            {
              "__type": "FootnoteReference",
              "__tag": 4066,
              "label": "1"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". For each blob found, the method returns its coordinates and the standard deviation of the Gaussian Kernel used for the Hessian matrix whose determinant detected the blob. Determinant of Hessians is approximated using "
            },
            {
              "__type": "FootnoteReference",
              "__tag": 4066,
              "label": "2"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "."
            }
          ]
        }
      ],
      "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": 665,
  "item_type": "function",
  "aliases": [
    "skimage.feature.blob_doh"
  ],
  "example_section_data": {
    "__type": "Section",
    "__tag": 4015,
    "children": [
      {
        "__type": "Code",
        "__tag": 4050,
        "value": "from skimage import data, feature\nimg = data.coins()\nfeature.blob_doh(img)\n",
        "execution_status": "success"
      }
    ],
    "title": [],
    "level": 0,
    "target": null
  },
  "see_also": [],
  "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": "30"
      },
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "num_sigma",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "POSITIONAL_OR_KEYWORD",
        "default": "10"
      },
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "threshold",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "POSITIONAL_OR_KEYWORD",
        "default": "0.01"
      },
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "overlap",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "POSITIONAL_OR_KEYWORD",
        "default": "0.5"
      },
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "log_scale",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "POSITIONAL_OR_KEYWORD",
        "default": "False"
      },
      {
        "__type": "SigParam",
        "__tag": 4030,
        "name": "threshold_rel",
        "annotation": {
          "__type": "Empty",
          "__tag": 4031
        },
        "kind": "KEYWORD_ONLY",
        "default": "<DEPRECATED>"
      },
      {
        "__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_doh"
  },
  "references": [
    ".. [1] https://en.wikipedia.org/wiki/Blob_detection#The_determinant_of_the_Hessian",
    ".. [2] Herbert Bay, Andreas Ess, Tinne Tuytelaars, Luc Van Gool,",
    "       \"SURF: Speeded Up Robust Features\"",
    "       ftp://ftp.vision.ee.ethz.ch/publications/articles/eth_biwi_00517.pdf"
  ],
  "qa": "skimage.feature.blob:blob_doh",
  "arbitrary": [],
  "local_refs": [
    "A",
    "image",
    "log_scale",
    "max_sigma",
    "min_sigma",
    "num_sigma",
    "overlap",
    "prescale",
    "threshold",
    "threshold_rel"
  ]
}