如何去掉图片上的logo

帮一个同学处理过一个宣传册里面要用到的图片,首先附上处理前后两张图~~




1、ps几个普通但常用的快捷键


空格键:按住空格键可以方便的移动图片;

Alt+space+鼠标滚轮上下滑动:快速的放大/缩小图片。

2、用吸管工具取色


如下图,要去掉“鱼儿乐 坐在家里养鱼”几个字,先选取吸管工具,在图片上看到鼠标指针变为一个吸管模样,选择你要改的颜色,比如蓝色,点一下,可以看到下面前景色变为

蓝色,再点一下取后景色。




3、用矩形选框工具拉取一个选框,即为你要修改的部分




4、使用刚刚选的前景色填充选框


在刚刚的选框中右键选择--填充,使用前景色填充。





点击确定之后,就能看见那几个字已经消失啦!


5、使用多边形套索工具,可以画出不规则区域





同样使用前景色填充。

6、重叠部分填充





同上点右键填充就大功告成啦!!!!

PS:楼主只会点皮毛,欢迎大家参考指正~~ 吐舌头 吐舌头

Java中可以使用第三方库实现图片logo水印的功能。常用的库有:OpenCV、JavaCV、JAI等。 其中,OpenCV是一个非常强大的计算机视觉库,可以用来处理图像和视频。在Java中使用OpenCV需要使用JavaCV库。 以下是一个使用JavaCV和OpenCV实现图片logo水印的示例代码: ```java import org.bytedeco.javacpp.Loader; import org.bytedeco.opencv.opencv_core.Mat; import org.bytedeco.opencv.opencv_core.Point; import org.bytedeco.opencv.opencv_core.Size; import org.bytedeco.opencv.opencv_objdetect.CascadeClassifier; import static org.bytedeco.opencv.global.opencv_core.*; import static org.bytedeco.opencv.global.opencv_imgcodecs.*; import static org.bytedeco.opencv.global.opencv_imgproc.*; import static org.bytedeco.opencv.global.opencv_objdetect.*; public class RemoveWatermark { public static void main(String[] args) { Loader.load(opencv_objdetect.class); // 加载分类器 CascadeClassifier classifier = new CascadeClassifier("haarcascade_frontalface_alt.xml"); // 加载原始图像 Mat src = imread("input.jpg"); // 定位人脸区域 MatOfRect faces = new MatOfRect(); classifier.detectMultiScale(src, faces); // 在人脸区域中寻找最佳匹配 Rect bestMatch = null; double bestMatchValue = 0; for (Rect face : faces.toArray()) { Mat faceRoi = new Mat(src, face); Mat hist = new Mat(); calcHist(faceRoi, 1, new int[]{0, 1, 2}, new Mat(), hist, 3, new int[]{8, 8, 8}, new float[]{0, 256, 0, 256, 0, 256}); double correlationValue = compareHist(hist, hist, CV_COMP_CORREL); if (correlationValue > bestMatchValue) { bestMatch = face; bestMatchValue = correlationValue; } } // 在最佳匹配区域中除水印 Mat watermark = imread("watermark.png", IMREAD_UNCHANGED); Mat watermarkMask = new Mat(); cvtColor(watermark, watermarkMask, COLOR_BGRA2GRAY); threshold(watermarkMask, watermarkMask, 1, 255, THRESH_BINARY); Mat watermarkRoi = new Mat(watermark, new Rect(0, 0, watermark.cols(), watermark.rows())); Mat srcRoi = new Mat(src, bestMatch); Mat dstRoi = new Mat(); inpaint(srcRoi, watermarkMask, dstRoi, 3, INPAINT_TELEA); dstRoi.copyTo(srcRoi); // 保存结果 imwrite("output.jpg", src); } } ``` 这段代码的核心思路是:先使用人脸识别算法定位出最佳匹配区域,然后在该区域中使用图像修复算法除水印。 需要注意的是,这段代码仅仅是一个示例,实际情况下需要根据具体场景进行调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值