You can do it by dilation if you want, but you'd have to process each object independently. Consider the following image.
This image contains a number of single-pixel objects, and one larger circle object.
inmask = imread('scattered.png');
outmask = false(CC.ImageSize);
thismask = false(CC.ImageSize);
theta = linspace(0,90,CC.NumObjects);
thismask(CC.PixelIdxList{k}) = true;
se = strel('line',100,theta(k));
thismask = imdilate(thismask,se);
outmask = outmask | thismask;
imshow(outmask,'border','tight')
In this example, as each blob index increases, the strel is rotated from 0 to 90 degrees. Since the operation is dilation, the resulting blob shapes are dependent on the shape of the original blobs.