Metamorphic testing is an effective technique for testing systems that do not have test oracles, for which it is practically impossible to know the correct output of an arbitrary test input. In metamorphic testing, instead of checking the correctness of a test output, the satisfaction of metamorphic relation among test outputs is checked. If a violation of the metamorphic relation is found, the system implementation must have some defects. However, a randomly or accidently generated incorrect output may satisfy a metamorphic relation as well. Therefore, checking only metamorphic relations is not good enough to ensure the testing quality. In this paper, we propose a self-checked metamorphic testing approach, which integrates structural testing into metamorphic testing, to detect subtle defects in a system implementation. In our approach, metamorphic testing results are further verified by test coverage information, which is automatically produced during the metamorphic testing. The effectiveness of the approach has been investigated through testing an image processing program.