Dreams From My Computer
Dreams From My Computer
code
code
helper functions
helper functions
In[]:=
getURLsByDate[historyCSV_String,dateString_String(*"mm/dd/yyyy"*)]:=With[ urls=Rest@Import[historyCSV,{"Data",All,6}], dates=Rest@Import[historyCSV,{"Data",All,3}] , Last/@Cases[Transpose[{dates,urls}],{dateString,_}]];
In[]:=
(*functionsforfilteringimages--couldaddtothislistand/orcleanitup*)$filters2Arg={"CommonestFilter","CornerFilter","CurvatureFlowFilter","DifferentiatorFilter","EntropyFilter","FourierDCTFilter","GaussianFilter","GeometricMeanFilter","GradientFilter","GradientOrientationFilter","HarmonicMeanFilter","HighpassFilter","HilbertFilter","KalmanFilter","KuwaharaFilter","LaplacianFilter","LaplacianGaussianFilter","LowpassFilter","MaxFilter","MeanFilter","MedianFilter","MinFilter","NonlocalMeansFilter","PeronaMalikFilter","PIDDerivativeFilter","RangeFilter","RidgeFilter","TotalVariationFilter","WienerFilter"};$filters3Arg={"ArrayFilter","BandpassFilter","BandstopFilter","BilateralFilter","CurvatureFlowFilter","DerivativeFilter","DifferentiatorFilter","GaborFilter","GaussianFilter","GuidedFilter","HighpassFilter","HilbertFilter","ImageFileFilter","ImageFilter","ImageSaliencyFilter","ITKConfidenceConnectedFilter","ITKConnectedThresholdFilter","ITKCurvatureAnisotropicDiffusionFilter","ITKCurvatureFlowFilter","ITKCurvesLevelSetFilter","ITKGeodesicActiveContourLevelSetFilter","ITKIsolatedConnectedFilter","ITKLevelSetFilter","ITKMeanDistanceRGBFilter","ITKMinMaxCurvatureFlowFilter","ITKMorphologicalWatershedFromMarkersImageFilter","ITKNarrowBandCurvesLevelSetFilter","ITKShapeDetectionLevelSetFilter","ITKWatershedImageFilter","LinearFilter","LowpassFilter","MeanShiftFilter","NonlocalMeansFilter","PeronaMalikFilter","PIDDerivativeFilter","RecurrenceFilter","StandardDeviationFilter","WienerFilter"};$filterFncs= $filters2Arg/.(h_StringHold[Symbol[h][#,RandomInteger[{1,10}]]&]), $filters3Arg/.(h_StringHold[Symbol[h][#,RandomInteger[{1,10}],RandomInteger[{1,10}]]&])//ReleaseHold;
In[]:=
$debugQ=True;debugPrint[args___]:=If[$debugQ,Print[args]];
dreaming function
dreaming function
In[]:=
(*maindreamingfunction*)ClearAll[dream]dream[historyCSV_String,dateString_:Automatic(*"mm/dd/yyyy"*)]:=Quiet@TimeConstrained[Module[ {urls,numUrls,urlImages,thumbnails,numThumbnails,filters,filteredThumbnails,startTime,endTime}, debugPrint["----------------"<>dateString<>"----------------"]; startTime=Now;(*importtheurlsinthecsvfilethatwerevisitedontheinputteddate(or,bydefault,today)*) urls=getURLsByDate[historyCSV,dateString/.(AutomaticStringJoin[Riffle[RotateLeft[StringSplit[DateString[Today,"ISODate"],"-"]],"/"]])]; (*removesensitivesites(internalWolframstuff)*) urls=Select[urls,StringFreeQ["internal.wolfram"|"bugs.wolfram"|"bizi.wolfram"|"ultipro"|"stash.wolfam"]]; If[MatchQ[urls,{__String}], debugPrint["imported URLs"], debugPrint["failed to import URLs"]; If[$debugQ,Echo[urls,"urls"]]; Return[$Failed] ]; (*pullalltheimagesfromarandomselectionoftheurls*) numUrls=RandomInteger[Floor[Length[urls]/4]]; urlImages=Flatten[Import[#,"Images"],numUrls]&/@RandomSample[urls]; (*cleanurlImagesbyremovingfailedimageimportsor(some)blankimages-mayneedtoaddmorehereasotherfailureshappen*) urlImages=Cases[DeleteCases[Flatten[urlImages],_Flatten|_String|Image[RawArray["UnsignedInteger8",{{{255,255,255,0}}}],"Byte",ColorSpace"RGB",InterleavingTrue]],_Image]; If[$debugQ&&MatchQ[urlImages,{__Image}], debugPrint["imported Images from URLs"], debugPrint["failed to import Images from URLs"]; If[$debugQ,Echo[DeleteDuplicates[Head/@urlImages],"cleaned urlImages Heads"]]; Return[$Failed] ]; (*convertimagestorandomlycroppedthumbnails*) thumbnails=ImageCrop[Thumbnail[#,IncludeMetaInformationNone],RandomInteger[{50,100},2]]&/@urlImages; (*getrandomsampleof(randomly-chosen)thumbnails-anotherlayerofrandomness*) numThumbnails=RandomInteger[Length[thumbnails]]; thumbnails=RandomSample[thumbnails,numThumbnails]; If[$debugQ&&MatchQ[thumbnails,{__Image}], debugPrint["converted Images to Thumbnails"], debugPrint["failed to convert Images to Thumbnails"]; If[$debugQ,Echo[DeleteDuplicates[Head/@thumbnails],"thumbnails Heads"]]; Return[$Failed] ]; (*getrandomselectionoffilters,paddingwithIdentityasnecessary*) filters=PadRight[Flatten[RandomSample[$filterFncs,Min[numThumbnails,Length[$filterFncs]]]],numThumbnails,Identity]; (*applyrandomfilterstorandomthumbnails,excludinganythatdon'tapplynicely*) filteredThumbnails=Cases[Quiet@Check[#1[#2],None]&@@@Transpose[{filters,thumbnails}],_Image]; If[$debugQ&&MatchQ[filteredThumbnails,{__Image}], debugPrint["applied filters to Thumbnails"], debugPrint["failed to apply filters to Thumbnails"]; If[$debugQ,Echo[DeleteDuplicates[Head/@filteredThumbnails],"filteredThumbnails Heads"]]; Return[$Failed] ]; endTime=Now; debugPrint[Row[{"Ellapsed time: ",DateDifference[startTime,endTime,"Minute"]}]]; (*displaythethumbnailsbyrandomlyplacingtheminagraphic*) Graphics[Inset[#,RandomInteger[{-50,50},2]]&/@filteredThumbnails,ImageSizeLarge] ],1800,debugPrint["Timed out (30 min)"];$Failed]
examples
examples
In[]:=
(*example:12/14/22-12/22/22*)dates=Flatten[StringJoin["12/",ToString[#],"/2022"]&/@Range[14,22]];dreams=dream["history.csv",#]&/@dates;
----------------12/14/2022----------------
imported URLs
imported Images from URLs
converted Images to Thumbnails
applied filters to Thumbnails
Ellapsed time:
----------------12/15/2022----------------
imported URLs
imported Images from URLs
converted Images to Thumbnails
collected results
collected results
December 14
December 14
December 15
December 15
December 18
December 18
December 19
December 19
December 20
December 20