Coder Social home page Coder Social logo

blindwatermark's People

Contributors

ww23 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blindwatermark's Issues

lack function

└─$ gradle build
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
openjdk version "17.0.8" 2023-07-18
OpenJDK Runtime Environment (build 17.0.8+7-Debian-1)
OpenJDK 64-Bit Server VM (build 17.0.8+7-Debian-1, mixed mode, sharing)
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
Starting a Gradle Daemon (subsequent builds will be faster)

FAILURE: Build failed with an exception.

  • Where:
    Build file '/home/kali/Downloads/tools/BlindWatermark/build.gradle' line: 24

  • What went wrong:
    A problem occurred evaluating root project 'BlindWatermark'.

Could not find method useJUnitPlatform() for arguments [] on task ':test' of type org.gradle.api.tasks.testing.Test.

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 3s

0.0.3 在 MacOs 报 Main 方法错误

 ✘ me@dayedebener  ~/Downloads  java -jar BlindWatermark-v0.0.3-macosx-x86_64.jar encode -ct 1.png 1.out.png
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
	at me.ww23.image.BlindWatermark.main(BlindWatermark.java:63)

新版新增中文水印出错

新版新增中文水印出错

水印为“中文测试test”没问题,
但是水印为“中文测试TEST”就会报错了
java.lang.RuntimeException: OpenCV(3.4.2) /Users/travis/build/bytedeco/javacpp-presets/opencv/cppbuild/macosx-x86_64/opencv-3.4.2/modules/core/src/arithm.cpp:659: error: (-209:Sizes of input arguments do not match) The operation is neither 'array op array' (where arrays have the same size and the same number of channels), nor 'array op scalar', nor 'scalar op array' in function 'arithm_op'

我将你的 encode的 代码覆盖重写就会报错 ,希望能帮我解决这个问题

1、首先我改encode的代码 是因为你的代码dft的文字盲水印耗时需要3s 以上,我加了些优化的代码

` public void encode(String image, String watermark, String output) {
// Mat src = Utils.read(image, CV_8S);
//
// List channel = new ArrayList<>(3);
// List newChannel = new ArrayList<>(3);
// split(src, channel);
//
// for (int i = 0; i < 3; i++) {
// Mat com = this.converter.start(channel.get(i)).clone();
// this.addWatermark(com, watermark);
// this.converter.inverse(com);
// newChannel.add(i, com);
// }
//
// Mat res = new Mat();
// merge(newChannel, res);
//
// if (res.rows() != src.rows() || res.cols() != src.cols()) {
// res = new Mat(res, new Rect(0, 0, src.width(), src.height()));
// }
//
// imwrite(output, res);

    Mat src = Utils.read(image, CV_8S);
    Mat res = new Mat();
    Mat padded = splitSrc(src);
    planes.add(padded);
    planes.add(1, Mat.zeros(padded.size(), CV_32F));
    merge(planes, res);
    dft(res, res);
    Scalar s = new Scalar(0, 0, 0, 0);
    Point p = new Point(res.cols() / 3, res.rows() / 3);
    putText(res, watermark, p, FONT_HERSHEY_COMPLEX, 1.0, s, 3,
            8, false);
    flip(res, res, -1);
    putText(res, watermark, p, FONT_HERSHEY_COMPLEX, 1.0, s, 3,
            8, false);
    flip(res, res, -1);

    Mat invDFT = new Mat();
    idft(res, invDFT, Core.DFT_SCALE | Core.DFT_REAL_OUTPUT, 0);
    Mat restoredImage = new Mat();
    invDFT.convertTo(restoredImage, 0);
    if (allPlanes.size() == 0) {
        allPlanes.add(restoredImage);
    } else {
        allPlanes.add(0, restoredImage);
    }
    Mat lastImage = new Mat();
    merge(allPlanes, lastImage);
    imwrite(output, lastImage);
}`

2、运行的时候报错
Exception in thread "main" CvException [org.opencv.core.CvException: cv::Exception: OpenCV(4.1.2) /Users/travis/build/bytedeco/javacpp-presets/opencv/cppbuild/macosx-x86_64/opencv-4.1.2/modules/core/src/merge.dispatch.cpp:129: error: (-215:Assertion failed) mv[i].size == mv[0].size && mv[i].depth() == depth in function 'merge' ] at org.opencv.core.Core.merge_0(Native Method) at org.opencv.core.Core.merge(Core.java:4067) at com.example.demo.converter.DftConverter.merge11(DftConverter.java:109) at com.example.demo.dencoder.Encoder.encode(Encoder.java:83) at com.example.demo.BlindWatermark.main(BlindWatermark.java:53)

3、如果我还原成你的就可以正常执行 ,所以我想问下 ,为什么我基于你的类库改的 ,为什么我运行不起来呢 ?

当使用DCT方式且图片的宽高有奇数的时候会报错

`
Exception in thread "main" java.lang.RuntimeException: OpenCV(3.4.2) C:\projects\javacpp-presets\opencv\cppbuild\windows-x86_64\opencv-3.4.2\modules\core\src\dxt.cpp:4149: error: (-213:The function/fe
ature is not implemented) Odd-size DCT's are not implemented in function 'cv::OcvDctImpl::apply'

    at org.bytedeco.javacpp.opencv_core.dct(Native Method)
    at me.ww23.image.BlindWatermark.startDCT(BlindWatermark.java:254)
    at me.ww23.image.BlindWatermark.decodeDCT(BlindWatermark.java:186)
    at me.ww23.image.BlindWatermark.main(BlindWatermark.java:64)

`
麻烦大佬看看谢谢

图片水印解码水印时报错

libpng warning: iCCP: profile 'ICC PROFILE': 60515C6Fh: exceeds application limits
libpng warning: iCCP: CRC error
libpng warning: iCCP: profile 'ICC PROFILE': 60515C6Fh: exceeds application limits
libpng warning: iCCP: CRC error
libpng warning: iCCP: profile 'ICC PROFILE': 60515C6Fh: exceeds application limits
libpng warning: iCCP: CRC error
2018-11-29 16:18:20.715 ERROR 8716 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context wi
th path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: OpenCV(3.4.2) C:\projects\javacpp-presets\opencv\cppbuild\wi
ndows-x86_64\opencv-3.4.2\modules\core\src\arithm.cpp:659: error: (-209:Sizes of input arguments do not match) The operation is neither 'array op array' (where arr
ays have the same size and the same number of channels), nor 'array op scalar', nor 'scalar op array' in function 'cv::arithm_op'
] with root cause

java.lang.RuntimeException: OpenCV(3.4.2) C:\projects\javacpp-presets\opencv\cppbuild\windows-x86_64\opencv-3.4.2\modules\core\src\arithm.cpp:659: error: (-209:Siz
es of input arguments do not match) The operation is neither 'array op array' (where arrays have the same size and the same number of channels), nor 'array op scal
ar', nor 'scalar op array' in function 'cv::arithm_op'

        at org.bytedeco.javacpp.opencv_core.subtract(Native Method) ~[opencv-3.4.2-1.4.2.jar!/:3.4.2-1.4.2]

我的代码见 https://github.com/aaronwong1989/blind-watermark

no opencv_imgproc343 in java.library.path

我执行java命令时增加的参数 -Djava.library.path=D:/app/opencv/java/x64
我的dll文件都这这个目录

  public static void main(String[] args) {
    SpringApplication.run(BlindWatermarkApplication.class, args);
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    loadOpenCvTest();
    Loader.load(opencv_core.class);
  }

  public static void loadOpenCvTest() {
    Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
    logger.info("opencv load success ! \n" + mat.dump());
  }

这是我的java代码,第一种方式的测试可以通过,但是运行到load方法就报错,请问时什么原因?

2018-11-28 17:10:06.324  INFO 20216 --- [           main] c.c.z.b.BlindWatermarkApplication        : opencv load success ! 
[  1,   0,   0;
   0,   1,   0;
   0,   0,   1]
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_core in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
	at java.lang.System.loadLibrary(System.java:1122)
	at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1258)
	at org.bytedeco.javacpp.Loader.load(Loader.java:999)
	at org.bytedeco.javacpp.Loader.load(Loader.java:891)
	at org.bytedeco.javacpp.opencv_core.<clinit>(opencv_core.java:10)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at org.bytedeco.javacpp.Loader.load(Loader.java:950)
	at org.bytedeco.javacpp.Loader.load(Loader.java:907)
	at cn.com.zybank.blindwatermark.BlindWatermarkApplication.main(BlindWatermarkApplication.java:27)
Caused by: java.lang.UnsatisfiedLinkError: no opencv_imgproc343 in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
	at java.lang.System.loadLibrary(System.java:1122)
	at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1258)
	at org.bytedeco.javacpp.Loader.load(Loader.java:977)
	... 7 more

我部署linux 环境的出现了问题 希望大神帮我看下 。这个so 文件到底是为什么会缺少 ?

[2020-07-20 17:41:40.413] [main] [ERROR] [c.b.p.m.l.e.GlobalUncaughtExceptionHandler] [TID:N/A] - An exception has been raised by Name:main,Id:1,Class:class java.lang.Thread java.lang.reflect.InvocationTargetException: null at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) Caused by: java.lang.UnsatisfiedLinkError: no jniopencv_highgui in java.library.path: [/usr/local/lib64, /usr/local/lib, /usr/lib64, /usr/lib, /lib64, /lib, /usr/java/packages/lib, /usr/lib64, /lib64, /lib, /usr/lib] at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2654) at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:876) at java.base/java.lang.System.loadLibrary(System.java:1875) at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1543) at org.bytedeco.javacpp.Loader.load(Loader.java:1192) at org.bytedeco.javacpp.Loader.load(Loader.java:1042) at org.bytedeco.opencv.global.opencv_highgui.<clinit>(opencv_highgui.java:22) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:374) at org.bytedeco.javacpp.Loader.load(Loader.java:1109) at org.bytedeco.javacpp.Loader.load(Loader.java:1058) ... 8 common frames omitted Caused by: java.lang.UnsatisfiedLinkError: /root/.javacpp/cache/opencv-4.1.2-1.5.2-linux-x86_64.jar/org/bytedeco/opencv/linux-x86_64/libjniopencv_highgui.so: /usr/lib64/libpango-1.0.so.0: undefined symbol: fribidi_get_par_embedding_levels_ex at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method) at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2424) at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2481) at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2678) at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2611) at java.base/java.lang.Runtime.load0(Runtime.java:814) at java.base/java.lang.System.load(System.java:1838) at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1493) ... 16 common frames omitted

v0.0.3版本中使用离散傅里叶变换编码无效

使用离散傅里叶变换编码过程中没有任何错误提示,执行完毕后会输出一张正常图片,图片体积略有增加,但是解码导出的图片中并没有得到正确结果(只有雪花)。
经测试
BlindWatermark-v0.0.3-windows-x86_64.jar
BlindWatermark-v0.0.3-windows-x86_64-gpu.jar
均出现相同情况,其他系统版本未测试。

使用离散余弦变换则可以正常编解码,没有出现问题。

jre版本信息
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

系统版本信息
Windows10 1803 (build 17134.706)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.