ThreeB 1.1
Functions
Useful debugging functions.

Functions

Image< byte > scale_to_bytes (const Image< float > &im, float lo, float hi)
void test_output_patch_variance (const vector< Image< float > > &ims)
template<class C >
void assert_same_size (const C &images)

Function Documentation

Image<byte> scale_to_bytes ( const Image< float > &  im,
float  lo,
float  hi 
)

Scales an image in to the correct range for bytes.

Parameters:
hiBrightest pixel in the image
loDimmest pixel in the image
imImage to scale
Returns:
scaled image

Definition at line 9 of file debug.cc.

Referenced by FitSpots::optimize_each_spot_in_turn_for_several_passes(), test_output_patch_variance(), and FitSpots::try_modifying_model().

{
    Image<byte> out(im.size());
    for(int r=0; r < out.size().y-0; r++)
        for(int c=0; c < out.size().x-0; c++)
            out[r][c] = (int)floor((im[r][c]-lo)*255/(hi-lo));

    return out;
}
void test_output_patch_variance ( const vector< Image< float > > &  ims)

Find the variance of every patch in the image and save it to a file.

Parameters:
imsList of images.

Definition at line 23 of file debug.cc.

References assert_same_size(), scale_to_bytes(), and sub_images().

{
    assert_same_size(ims);

    int rr = GV3::get<int>("test.variance.radius", 1, -1);
    ImageRef r(rr, rr);
    ImageRef size = r*2 + ImageRef(1,1);

    Image<float> stds(ims.front().size(), 0);

    ImageRef p; 
    for(ImageRef p(0,0); p.y < stds.size().y - size.y; p.y++)
    {
        for(p.x=0; p.x < stds.size().x - size.x; p.x++)
            stds[p + r] = sqrt(mean_and_variance(sub_images(ims, p, size)).second);
    }

    SubImage<float> s = stds.sub_image(ImageRef(2,2), stds.size() - ImageRef(4,4));

    float hi = *max_element(s.begin(), s.end());
    float lo = *min_element(s.begin(), s.end());
    cerr << hi << " " << lo << endl;
    img_save(scale_to_bytes(stds, lo, hi), "test_variance.png");
}
template<class C >
void assert_same_size ( const C &  images)

Determines that all images in the incoming container are the same size, and that the container is not empty.

Parameters:
imagesContainer to check

Definition at line 11 of file debug.h.

Referenced by auto_fixed_scaling(), average_image(), FitSpots::FitSpots(), generate_state_parameters_ye_olde(), SampledMultispot::GibbsSampler::GibbsSampler(), SampledMultispot::GibbsSampler2::GibbsSampler2(), and test_output_patch_variance().

{
    assert(!images.empty());
    for(typename C::const_iterator i=images.begin(); i != images.end(); i++)
        assert(i->size() == images.front().size());
}