Encapsulation is definitely possible without inheritance. Encapsulation is the concept of hiding data that from outside objects that should not be able to manipulate it. An example of encapsulation would be private fields of an object in Java. You can then use public methods (such as getters and setters, or other calculating methods) to manipulate the data only as needed.
Abstraction and Polymorphism, however, are directly related to inheritance.
Abstraction is when you take away the implementation details of an object and create an abstract class or an interface (speaking in terms of Java). This will act as a contract for what any implementing or inheriting class will need to include in the detailed implementation. The abstract class will have method signatures, but no body; the inheriting class will implement the bodies.
Polymorphism is the ability to implement something abstract in different forms. For example, if you have an abstract class called Animal that contained a speak() method, you could create a Dog class that inherits from Animal and implement speak() to print "woof", while a Cat() class would implement speak() to print "meow".
Note that it does depend on which type of polymorphism is being examined. You can, as stated in another answer, have method/function parameter polymorphism, and as stated that is possible without inheritance.