An image processing apparatus including: a memory storing computer-readable instructions; and a processor configured to execute the computer-readable instructions to: provide an input image as a first input to a first neural model, obtain a first image including enhanced edges that are optimized based on edges of the input image from the first neural model, provide the input image as a second input to a second neural model, obtain a second image including an enhanced texture that is optimized based on texture of the input image from the second neural model, identify edge areas of the edges included in the input image , identify texture areas of the texture included in the input image , obtain a first weight corresponding to the edge areas and a second weight corresponding to the texture areas based on a ratio of the identified edge areas and the identified texture areas in the input image, apply the first weight to the first image including the enhanced edges, apply the second weight to the second image including the enhanced texture, and obtain an output image based on the first image in which the first weight is applied and the second image in which the second weight is applied. a memory storing computer-readable instructions; and a processor configured to execute the computer-readable instructions to: provide an input image as a first input to a first neural model, obtain a first image including enhanced edges that are optimized based on edges of the input image from the first neural model, provide the input image as a second input to a second neural model, obtain a second image including an enhanced texture that is optimized based on texture of the input image from the second neural model, identify edge areas of the edges included in the input image , identify texture areas of the texture included in the input image , obtain a first weight corresponding to the edge areas and a second weight corresponding to the texture areas based on a ratio of the identified edge areas and the identified texture areas in the input image, apply the first weight to the first image including the enhanced edges, apply the second weight to the second image including the enhanced texture, and obtain an output image based on the first image in which the first weight is applied and the second image in which the second weight is applied. provide an input image as a first input to a first neural model, obtain a first image including enhanced edges that are optimized based on edges of the input image from the first neural model, provide the input image as a second input to a second neural model, obtain a second image including an enhanced texture that is optimized based on texture of the input image from the second neural model, identify edge areas of the edges included in the input image , identify texture areas of the texture included in the input image , obtain a first weight corresponding to the edge areas and a second weight corresponding to the texture areas based on a ratio of the identified edge areas and the identified texture areas in the input image, apply the first weight to the first image including the enhanced edges, apply the second weight to the second image including the enhanced texture, and obtain an output image based on the first image in which the first weight is applied and the second image in which the second weight is applied. <EOS>