cs describe(cat_rgbaxis= ds describe(dog_rgbaxis= cat_rgb_range cs minmax[ cs minmax[ dog_rgb_range ds minmax[ ds minmax[ rgb_range_df pd dataframe([cat_rgb_rangedog_rgb_range]columns=['r_range''g_range''b_range']pd concat([dfrgb_range_df]axis= out[ ]image r_range g_range b_range cat dog we can then use these range features as specific characteristic attributes of each image besides thiswe can also compute other metrics like meanmedianvarianceskewnessand kurtosis for each image channel as follows in [ ]cat_statsnp array([np round(cs mean ),np round(cs variance )np round(cs kurtosis ),np round(cs skewness )np round(np median(cat_rgbaxis= ) )]flatten(dog_statsnp array([np round(ds mean ),np round(ds variance )np round(ds kurtosis ),np round(ds skewness )np round(np median(dog_rgbaxis= ) )]flatten(stats_df pd dataframe([cat_statsdog_stats]columns=['r_mean''g_mean''b_mean''r_var''g_var''b_var''r_kurt''g_kurt''b_kurt''r_skew''g_skew''b_skew''r_med''g_med''b_med']pd concat([dfstats_df]axis= figure - image channel aggregation statistical features we can observe from the features obtained in figure - that the meanmedianand kurtosis values for the various channels for the dog image are mostly greater than corresponding ones in the cat image variance and skewness are however more for the cat image edge detection one of the more interesting and sophisticated techniques involve detecting edges in an image edge detection algorithms can be used to detect sharp intensity and brightness changes in an image and find areas of interest the canny edge detector algorithm developed by john canny is one of the most widely used edge detector algorithms today this algorithm typically involves using gaussian distribution with specific standard deviation (sigmato smoothen and denoise the image then we apply sobel filter to extract image intensity gradients norm value of this gradient is used to determine the edge strength