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)

经验分享 程序员 微信小程序 职场和发展