java-opencv设置图片中每个像素的颜色
需要dll
jar包在opencvuildjava目录里,dll文件在opencvuildjava64x目录里
设置图片中每个像素的颜色
package opencv;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class Test1 {
static {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);//加载库,否则会出错
}
public static void main(String[] args) {
Mat mat = Imgcodecs.imread("D:\1.png");//原始图片
Mat m = new Mat(mat.size(),mat.type());//处理之后的图片
double[] d = new double[3];//存放像素颜色
for (int i = 0, r = (int) mat.size().height; i < r; i++) {
for (int j = 0,c = (int) mat.size().width; j < c; j++) {
d = mat.get(i, j).clone();//获取像素颜色
//设置像素颜色
d[2] = 255 - d[2];//d[2]为红色
d[1] = 255 - d[1];//d[1]为绿色
d[0] = 255 - d[0];//d[0]为蓝色
m.put(i, j, d);//保存像素颜色
}
}
Imgcodecs.imwrite("D:\2.png", m);//保存图片
}
}
结果
原始图片(D:1.png)
处理之后的图片(D:2.png)
