Zi 字媒體
2017-07-25T20:27:27+00:00
fanfuhan OpenCV 教學075 ~ OpenCV-075-圖像去水印/修復
資料來源: https://fanfuhan.github.io/
https://fanfuhan.github.io/2019/04/23/opencv-075/
GITHUB:https://github.com/jash-git/fanfuhan_ML_OpenCV
C++
#include
#include
using namespace std;
using namespace cv;
/*
* 图像去水印/修复
*/
int main() {
Mat src = imread("../images/wm.jpg");
//Mat src = imread("../images/master2.jpg");
if (src.empty()) {
cout << "could not load image.." << endl;
}
imshow("input", src);
Mat hsv, mask, result;
// 得到mask
cvtColor(src, hsv, COLOR_BGR2HSV);
inRange(hsv, Scalar(100, 43, 46), Scalar(124, 255, 255), mask);
Mat se = getStructuringElement(MORPH_RECT, Size(5, 5));
dilate(mask, mask, se);
imshow("mask", mask);
// 修复
inpaint(src, mask, result, 3, INPAINT_TELEA);
imshow("result", result);
waitKey(0);
return 0;
}
Python
import cv2 as cv
if __name__ == '__main__':
src = cv.imread("D:/images/master2.jpg")
cv.imshow("watermark image", src)
hsv = cv.cvtColor(src, cv.COLOR_BGR2HSV)
mask = cv.inRange(hsv, (100, 43, 46), (124, 255, 255))
cv.imshow("mask", mask)
cv.imwrite("D:/mask.png", mask)
se = cv.getStructuringElement(cv.MORPH_RECT, (5, 5))
cv.dilate(mask, se, mask)
result = cv.inpaint(src, mask, 3, cv.INPAINT_TELEA)
cv.imshow("result", result)
cv.imwrite("D:/result.png", result)
cv.waitKey(0)
cv.destroyAllWindows()
寫了
5860316篇文章,獲得
23313次喜歡