Skip to content

Instantly share code, notes, and snippets.

@jeanpat
Created June 5, 2013 07:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeanpat/5712192 to your computer and use it in GitHub Desktop.
Save jeanpat/5712192 to your computer and use it in GitHub Desktop.
ipython notebook. Detect the largest blob in an image and calculate its area.
{
"metadata": {
"name": "largest object"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": "import os\nimport math\nfrom matplotlib import pyplot as plt\n\nimport mahotas as mh\nfrom mahotas import polygon\nimport pymorph as pm\n\nfrom skimage.morphology import convex_hull_image\n\nimport numpy as np",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": "user=os.path.expanduser(\"~\")\n#/home/simon/Images/Etrusques\nworkdir=os.path.join(user,\"Images\",\"Etrusques\")\nImageFork = \"CCKqV.jpg\"# image of fork like sign\ncomplete_path = os.path.join(workdir,ImageFork)\ncurrent = mh.imread(complete_path)\nimg = current[:,:,0]<230\n\nlab, n = mh.label(img)\nlabsizes = mh.labeled.labeled_size(lab)[1:]\nsize_largest_blob = sorted(labsizes)[-1]\nlabel_largest_blob = np.where(np.asarray(labsizes)==size_largest_blob)\nlargest_blob = lab== label_largest_blob[0][0]+1\n\nprint mh.labeled.labeled_size(lab)\n#print labsizes\n#print sorted(labsizes)\nprint size_largest_blob\nprint label_largest_blob[0][0]\nprint label_largest_blob[0][0]+1\n#print np.where(lab== 26)#label_largest_blob[0][0])\n#print largest_blob\n\ncvxh_points = polygon.convexhull(img)\ncHull = convex_hull_image(img)\nimsize = np.sum(img)\ncHull_size = np.sum(cHull)\n\nplt.figsize(14,14)\nplt.subplot(131)\nplt.title('im size'+str(imsize)+' cHull:'+str(cHull_size))\ndisplay = pm.overlay(img, green=mh.bwperim(cHull))\nplt.imshow(display)\nplt.scatter(cvxh_points[:,1], cvxh_points[:,0],c='red')\nplt.subplot(132)\nplt.imshow(lab)\nplt.subplot(133)\nplt.title(' area largest blob:'+str(size_largest_blob))\nplt.imshow(largest_blob)",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "[51103 113 40 5 18 1 31 13 16 39 19 27\n 10 19 121 29 18 7 11 6 134 12 13 2\n 55 15 7 13 4 14 5 6 14]\n134\n19\n20\n"
},
{
"output_type": "pyout",
"prompt_number": 42,
"text": "<matplotlib.image.AxesImage at 0x12269cac>"
},
{
"output_type": "display_data",
"png": "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\ngg==\n"
}
],
"prompt_number": 42
},
{
"cell_type": "code",
"collapsed": false,
"input": "",
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment