Select an image file of someone's face to upload. This file will then be morphed with an ass.
For best results, use a direct face-on photo with neutral lighting and a plain background. Look directly into the camera with both eyes open and mouth closed.
![]() |
![]() |
Supported formats: JPG, PCX, TGA, TIFF, BMP, PNG.
Sorry, GIF files are not currently supported.
The ass morpher begins by using a backpropagation neural network learning algorithm to identify prominent facial features. The neural network was trained on a series of 80 source images with the coordinates of the eyes, nose, and mouth manually specified. A large portion of the code for this neural network was scrounged from Carnegie Mellon University's course on Machine Learning. The technique also borrows heavily from the facial feature recogntion system of of Paul Debevec at USC's Institute for Creative Technologies in that it uses small subsampled versions of the image's log-polar map to provide fine-grained information about a feature's local area and coarse information about its surrounding image space. Any features that are detected within a high threshold of confidence are appropriately mapped to corresponding points on a preselected "ass" image. For example, the left eye is mapped to the center of the left cheek, and the nose is mapped to the ass crack.
![]() Sample Training Image |
![]() Log-Polar Map of Mouth |
![]() Log-Polar Map of Nose |
![]() Sample Testing Image |
![]() Left-Eye Feature Map |
![]() Nose Feature Map |
![]() Line Segments Generated |
This facial feature detection process is followed by a Sobel
edge detection filter, which convolves the image with two kernels, one which
measures the image's horizontal gradient and the other its vertical gradient. These
partial results are combined using a Euclidian distance metric to compute an
approximation to the magnitude of the true gradient at each pixel. The
Sobel filter is followed by a Hough
transform, which maps each
in the filtered source image to a discretized
curve, incrementing a series of accumulator cells lying along this curve as it
does so. Peaks in the array of accumulator cells represent strong straight
lines, generally corresponding either to the extreme edges of the face or sharp
facial lines such as the nasio-labial furrows. When these high intensity feature boundaries are located within the outer
25% of the image, they are taken as additional line segments specifying
correspondences between the extreme edges of the face and the outer portions of
the ass.
![]() Start Image |
![]() Sobel Edge Detection |
![]() Transformed to Hough Parameter Space |
![]() De-Houghed Detected Lines |
![]() Thresholding Isolates Segments from Lines |
The generated correspondences are then used to warp the source and destination images using the Beier-Neely algorithm for feature-based image metamorphosis, presented at Siggraph '92. This method uses an inverse falloff distance metric to determine a weight for each of the specified line segments for each point location in the source image. It then computers a displacement vector from the destination point to the destination line segment, and calculates a weighted average of the displacements applied to the destination point to compute the new location of the source point. Both the source face image and the destination ass image are deformed with a warp factor of .5, using bilinear interpolation for per-pixel resampling. Finally, these warped images are cross-dissolved to produce the completed ass-face morph.

Green line segments show corresponding features of the source
and destination images,
which are used to produce the warped and cross-dissolved image at right.
The line segments
on the ass image (center) are specified ahead of time, while the line segments
on the face
image (left) are dynamically generated using the techniques described above.
Ass Morpher by Dan
Maynes-Aminzade
June 7, 2001