Я пробовал эффект карандашного наброска в OpenCV. В сообщении, которое я читал, применялось линейное осветление изображения с размытым (негативное изображение) в качестве маски для получения эффекта.
inv=255-img
blur=cv2.GaussianBlur(inv,(21,21),0,0)
res=cv2.divide(img,255-blur,scale=256)
, но я обнаружил, что эффект может быть достигнут без инвертирования изображения (результаты внизу слева - с инверсией и справа без инверсии) Я сделал это.
blur2=cv2.GaussianBlur(img,(21,21),0,0)
res = cv2.divide(img,blur2,scale=256)
Я также читал в некоторых ответах StackOverflow, и они также предложили первый подход. Я хотел знать, почему необходимо применять размытие к негативу, если мы конвертируем обратно в оригинал? Спасибо, что нашли время ответить на вопрос.
Инструкции по преобразованию изображения в эскиз в книге «opencv with python blueprints».
Преобразование цветного изображения в оттенки серого.
Инвертирование изображения в оттенках серого для получения негатива.
Применение гауссовского размытие на негатив из шага 2.
Смешайте изображение в градациях серого из шага 1 с размытым негативом из шага 3, используя осветление цвета.
Ссылка