something like this?
import org.bytedeco.javacpp.indexer.UByteIndexer;
import org.bytedeco.opencv.opencv_core.Mat;
import org.bytedeco.opencv.opencv_core.Scalar;
import static org.bytedeco.opencv.global.opencv_core.*;
import static org.bytedeco.opencv.global.opencv_imgcodecs.*;
public class JavaCVDiffImages
{
public static void main
(String
[] params
){
String input_img_1 = "data\\OpenCV_logo_no_text.png";
String input_img_2 = "data\\OpenCV_logo_no_text_2.png";
try
{
Mat src_1 =
imread(input_img_1
);
Mat src_2 =
imread(input_img_2
);
Mat diffImage = new Mat
();
absdiff(src_1, src_2, diffImage
);
Scalar maskscalar = new Scalar
(0, 0, 0, 1
);
Mat mask = new Mat
(diffImage.rows
(),diffImage.cols
(),
CV_8UC1, maskscalar
);
final UByteIndexer resizeIdx = diffImage.createIndexer
();
final UByteIndexer maskIdx = mask.createIndexer
();
for
(long hh = 0; hh < diffImage.rows
(); hh++
) {
for
(long ww = 0; ww < diffImage.cols
(); ww++
) {
if
(resizeIdx.get
(hh, ww
) > 30
) {
maskIdx.put
(hh, ww, 255
);
}
}
}
imwrite("data\\OpenCV_logo_no_text_diff.png", mask
);
} catch
(Exception e
){
System.
out.println
(e.getMessage
());