Counting the number of objects intersected by the image border in MATLAB
In my opinion, dilation erosion are very basic tools. You have a very strong information base and quite a decent input image to make such decisions. 

Here is my view: 


Given a reasonable success you have shown to go from Fig 1 to 3, you can identify and segment individual signs. 
Assuming that you have known signs a prior, you can apply a decent fast algorithms to do pattern matching. In case if the exact patterns are not known- you can just identify the outer shape of the pattern. 
Based on the classification, you can always define the centroid of each matched pattern and its respective width and height. If the centroid X,Y position is too close to the border - i.e. $centroid(x) &lt; 0$ or $centroid(x) &gt; imagewidth - shapewidth $ it is outside the edge, similarly you can apply for Y axis as well. 
Given that you are only concerned about what falls on the edge - you should start with each edge only and start pattern matching there. Start matching the partial pattern/shape and if the partial pattern/shape does match that object IS being cut on the edge. 


Here are some references that might help you formulate the problem well. 

This paper is a very good to understand lot of basics about Signs/tokens you are dealing with.

Anil K. Jain and Aditya Vailaya Shape-Based Retrieval: A Case Study with Trademark Image Databases  Pattern recognition 1998, vol. 31, no9, pp. 1369-1390

There are many research elements which deals with partial or occluded shape/pattern matching. 

Eli Saber,Yaowu Xu, A. Murat Tekalp Partial shape recognition by sub-matrix matching for partial matching guided image labeling Pattern Recognition 38 (2005) 1560 – 1573

Will expand this answer for more specific queries if you take this approach.