Use the Opportunity Contact Role object when selecting the object, you should have Contact ID (Contact) available.
Select Is Created and Is Updated in your Entry Criteria and you could use Contact ID is not null for a filter on the Opportunity Contact role as a default filter.
In your Filter/Related Object Criteria you can select fields from the Opportunity object like stage, type etc.
**Because Opportunity is a Related Object or a secondary filter a member will not enter if only the Opportunity criteria is created or updated. It has to be both the Opportunity Contact Role (created) as well as Oppportunity. **
Also when configuring your decision split to set up a 1 to Many relationship using the "Add on Attribute to compare" checkbox, you'll need to select the Opportunity Contact Role ID, not Opportunity ID to link the Journey subscriber in the contact model. A great SE article referencing this issue: attribute-to-attribute comparison in decision splits