Eric, thanks for the quick response. Your solution is not quite what I was looking for. It is probably because I didn’t do a good enough job describing my problem. Your solution works if “horsePyramid” corresponds to a single ImagePyramid object. What I am looking for is a solution that works if “horsePyramid” is a list of several image pyramids (see code below for more clarification).
​
In your response to my post you also said “Let me know if you want a version that you can map over a list of images or image pyramids”. I think that what you are referring to here could be what I am looking for. Could you please send me a version that maps over a list of image pyramids?
In[]:=
a=
,
;​​Print["In Eric's code horsePyramid represents a single ImagePyramid object"];​​horsePyramid=ImagePyramid[a[[1]],"Laplacian",4,2];​​horsePyramid["Levels"]=MapAt[-#&,horsePyramid["Levels"],{1;;-2}];​​InverseImagePyramid[horsePyramid]​​​​Print["If horsePyramid is a list of pyramids an error occurs"];​​animalPyramid=Table[ImagePyramid[a[[n]],"Laplacian",4,2],{n,1,Length[a]}];​​animalPyramid[[1]]["Levels"]=MapAt[-#&,animalPyramid[[1]]["Levels"],{1;;-2}];​​InverseImagePyramid[animalPyramid[[1]]]
In Eric's code horsePyramid represents a single ImagePyramid object
Out[]=
If horsePyramid is a list of pyramids an error occurs
Out[]=
Also FYI - Wolfram has a worked example that is similar to your proposed solution to my problem. It uses the “Map” function instead of the “MapAt” function that you use. You can get to the Wolfram example as follows:
1) Go to https://reference.wolfram.com/language/ref/ImagePyramid.html
2) Click on “Examples”
3) Click on “Applications”
4) Click on “Image Effects”
5) Look at the 2nd line of code for the “Compute a bandpass pyramid” example.}