If I know in advance that a restaurant doesn't take Amex, I will usually choose somewhere else unless I MUST dine there - it creates an appearance of cheapness by the proprietor (what else besides CC fees are they trying to scrimp on? Food quality/freshness? Staff?) - and/or the inconvenience of having to use a card other than Amex, which is the place I put all my business expenses. Yeah, I have other cards, but Amex gives me a LOT of bennies for using theirs (plus the ability, if I want it, to charge virtually unlimited amounts without ever incurring interest charges - sorry they extract this from merchants.)
Frankly, unless your establishment is good/popular/under-the-counter enough to command 'cash only,' you need to take Amex. Not taking it turns away corporate business (from those who have corporate-issues AXs and must use them for all business meals) and casual/personal dining from many frequent diners/travellers.
I have, on the other hand, paid cash to retail merchants (not restaurants) in exchange for NOT using Amex, in a deal where we split the avoided fees and negotiated a good price (e.g. on $x,xxx electronics). That would be kind of tough to implement in a restaurat environment.
Bottom line, accepting Amex probably helps your gross at the cost of a small hit to your net on the Amex tickets; that's why they get away with their fees.
As for Discover...
Don't have one. Never will.