5
$\begingroup$

Could someone kindly guide me as to how to get all the image processing functions (segmentation, analysis, morphological operations etc... ) for 2D and 3D images in Mathematica including ones that do not begin with word "Image"

$\endgroup$
  • 5
    $\begingroup$ reference.wolfram.com/language/guide/ImageProcessing.html $\endgroup$ – Young Aug 4 '16 at 14:37
  • $\begingroup$ i am aware of that. I was thinking if there is a way to get a list of functions within the notebook. $\endgroup$ – Ali Hashmi Aug 4 '16 at 14:48
  • 3
    $\begingroup$ WolframLanguageData[EntityClass["WolframLanguageSymbol", {"FunctionalityArea", "ImageSymbols"}]] gives a partial list. $\endgroup$ – J. M. will be back soon Aug 4 '16 at 18:38
  • 2
    $\begingroup$ @J.M. that should be one answer. It gives a longer list than the current answer, but doesn't include {BilateralFilter, ColorConvert, ColorQuantize, ColorReplace, EntropyFilter, ExampleData, GaussianFilter, GradientFilter, HistogramTransform, ImageHistogram, ImageIdentify, ImageInstanceQ, Import, MeanShiftFilter, Rasterize, TotalVariationFilter}, as these are considered "ColorSymbols", "FileSystemSymbols", "GraphicsSymbols", "HistogramSymbols", "ImageFilterSymbols", "MachineLearningSymbols", or "PacletSymbols" $\endgroup$ – Karsten 7. Aug 4 '16 at 19:23
  • 2
    $\begingroup$ @J.M. That's not a complete list, but just the complement of your list with Bob's. Not going to answer, as I already closed that nb without saving. Moreover Entitys are annoying and annoyingly slow. $\endgroup$ – Karsten 7. Aug 4 '16 at 19:45
7
$\begingroup$

EDIT: Added Union to sort and eliminate duplicates. Displayed results as table with Grid

base = "https://reference.wolfram.com/language";

len = StringLength[base <> "/ref/"];

funcs = StringTake[#, {len + 1 ;; -6}] & /@
       Select[
        Import[
         base <> "/guide/ImageProcessing.html",
         "Hyperlinks"],
        StringTake[#, len] === base <> "/ref/" &] //
      Flatten // 
     ToExpression // Union // Quiet;

funcs // Partition[#, 20] & //
  Transpose // Grid[#, Alignment -> Left] &

enter image description here

Or more simply (provided by Karsten 7.)

Multicolumn[funcs, 3]

EDIT 2: For a more complete listing, scrape multiple guides related to image processing

guides = {
   "ImageProcessing",
   "BasicImageManipulation",
   "ImageFilteringAndNeighborhoodProcessing",
   "SegmentationAnalysis",
   "ImageRestoration",
   "ImageGeometry",
   "MathematicalMorphology",
   "ComputerVision",
   "3DImages",
   "RasterImageFormats",
   "ColorProcessing"
   };

guideHyperlinks =
  "http://reference.wolfram.com/" <>
     "language/guide/" <>
     # <> 
     ".html" & /@ guides;

base =
  "http://reference.wolfram.com/language/ref/";

hyperlinks = Select[
    Flatten[
      Import[#, "Hyperlinks"] & /@
       guideHyperlinks] //
     Union,
    StringTake[#,
       StringLength[base]] == base &] //
   Quiet;

funcs =
  StringTake[#, {StringLength[base] + 1, -6}] & /@
   hyperlinks;

Length[funcs]

(*  254  *)

Multicolumn[funcs, 3]

(* large output deleted *)
$\endgroup$
  • 2
    $\begingroup$ Multicolumn is quite convenient here: Multicolumn[funcs, 3] $\endgroup$ – Karsten 7. Aug 5 '16 at 2:26
0
$\begingroup$

This will give all of what you want

CanonicalName@*EntityList@
 Entity["WolframLanguageSymbol", {"FunctionalityAreas" -> 
    "ColorSymbols" | "ImageFilterSymbols" | "ImageSymbols"}]

{AlphaChannel,BarcodeImage,<<262>>,ZoomFactor,$ImageFormattingWidth}

$\endgroup$
  • $\begingroup$ I don't think that WordCloud, VectorColorFunction, ChromaticityPlot, ZoomCenter and some other returned symbols should be considered as image-processing functions even in an extended sense. I also don't think that such symbols as White, Hue etc. should be included: they are related to image-processing functionality but all the language basics are related to this functionality in some sense (for example, Blank, Pattern, Rule etc.)! There is no point to include everything related into a list of image-processing functions. $\endgroup$ – Alexey Popkov Aug 8 '16 at 10:30
  • $\begingroup$ @AlexeyPopkov I don't think too.But the Mr. Wolfram think so. :) $\endgroup$ – yode Aug 8 '16 at 10:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.