#include #include #include #include #include void array_multiply(float* lhs, float rhs, unsigned int N); void array_add(float* ptr1, float* ptr2, float* sum, unsigned int N); stim::image func_mPb_theta(stim::image lab, float theta, unsigned int w, unsigned int h){ stim::image mPb_theta(w, h, 1); stim::image pic_light, pic_colora, pic_colorb; pic_light = lab.channel(0); pic_colora = lab.channel(1); pic_colorb = lab.channel(2); unsigned int N = w * h; float sigma = 2; unsigned int sigma_n = 3; unsigned r1 = 3; unsigned r2 = 5; unsigned r3 = 10; unsigned r4 = 20; float alpha[9] = {1,1,1,1,1,1,1,1,1}; stim::image l1,l2,l3,a1,a2,a3,b1,b2,b3; l1 = gaussian_derivative_filter_odd(pic_light, sigma, sigma_n, r1 * 2, theta, w, h); stim::cpu2image(l1.data(), "data_output/l1_tex2.bmp", w, h, stim::cmBrewer); l2 = gaussian_derivative_filter_odd(pic_light, sigma, sigma_n, r2 * 2, theta, w, h); stim::cpu2image(l2.data(), "data_output/l2_tex.bmp", w, h, stim::cmBrewer); l3 = gaussian_derivative_filter_odd(pic_light, sigma, sigma_n, r3 * 2, theta, w, h); stim::cpu2image(l3.data(), "data_output/l3_tex.bmp", w, h, stim::cmBrewer); a1 = gaussian_derivative_filter_odd(pic_colora, sigma, sigma_n, r2 * 2, theta, w, h); stim::cpu2image(a1.data(), "data_output/a1_tex.bmp", w, h, stim::cmBrewer); a2 = gaussian_derivative_filter_odd(pic_colora, sigma, sigma_n, r3 * 2, theta, w, h); stim::cpu2image(a2.data(), "data_output/a2_tex.bmp", w, h, stim::cmBrewer); a3 = gaussian_derivative_filter_odd(pic_colora, sigma, sigma_n, r4 * 2, theta, w, h); stim::cpu2image(a3.data(), "data_output/a3_tex.bmp", w, h, stim::cmBrewer); b1 = gaussian_derivative_filter_odd(pic_colorb, sigma, sigma_n, r2 * 2, theta, w, h); stim::cpu2image(b1.data(), "data_output/b1_tex.bmp", w, h, stim::cmBrewer); b2 = gaussian_derivative_filter_odd(pic_colorb, sigma, sigma_n, r3 * 2, theta, w, h); stim::cpu2image(b2.data(), "data_output/b2_tex.bmp", w, h, stim::cmBrewer); b3 = gaussian_derivative_filter_odd(pic_colorb, sigma, sigma_n, r4 * 2, theta, w, h); stim::cpu2image(b3.data(), "data_output/b3_tex.bmp", w, h, stim::cmBrewer); /*for (unsigned i = 0; i