Last active
January 1, 2016 21:29
-
-
Save yoggy/8203905 to your computer and use it in GitHub Desktop.
sample sketch for "OpenCV for Processing" library...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// sample sketch for "OpenCV for Processing" library... | |
// | |
String image_url = "nike.jpg"; | |
Mat test_img; | |
void setup() { | |
size(640, 480); | |
initOpenCV(); | |
} | |
void draw() { | |
Mat img = loadImageMat(image_url); | |
image(img, 0, 0); | |
if (frameCount % 30 == 0) { | |
println("fps=" + frameRate); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import gab.opencv.*; | |
import org.opencv.core.*; | |
import org.opencv.imgproc.*; | |
OpenCV opencv; | |
void initOpenCV() { | |
opencv = new OpenCV(this, width, height); | |
} | |
Mat loadImageMat(String url) { | |
PImage pimage = loadImage(url); | |
Mat argb_mat = new Mat(pimage.height, pimage.width, CvType.CV_8UC4); | |
OpenCV.toCv(pimage, argb_mat); | |
ArrayList<Mat> channels = new ArrayList<Mat>(); | |
Core.split(argb_mat, channels); | |
ArrayList<Mat> reordered = new ArrayList<Mat>(); | |
reordered.add(channels.get(3)); //B | |
reordered.add(channels.get(2)); //G | |
reordered.add(channels.get(1)); //R | |
Mat bgr_mat = new Mat(argb_mat.rows(), argb_mat.cols(), CvType.CV_8UC3); | |
Core.merge(reordered, bgr_mat); | |
return bgr_mat; | |
} | |
PImage convertToPImage(Mat src) { | |
PImage pimage = createImage(src.cols(), src.rows(), ARGB); | |
if (src.channels() == 1) { | |
Mat bgra_mat = new Mat(src.rows(), src.cols(), CvType.CV_8UC4); | |
Imgproc.cvtColor(src, bgra_mat, Imgproc.COLOR_GRAY2BGRA); | |
opencv.toPImage(bgra_mat, pimage); | |
} | |
else if (src.channels() == 3) { | |
Mat bgra_mat = new Mat(src.rows(), src.cols(), CvType.CV_8UC4); | |
Imgproc.cvtColor(src, bgra_mat, Imgproc.COLOR_BGR2BGRA); | |
opencv.toPImage(bgra_mat, pimage); | |
} | |
else { | |
opencv.toPImage(src, pimage); | |
} | |
return pimage; | |
} | |
void image(Mat img, float x, float y, float w, float h) | |
{ | |
PImage pimage = convertToPImage(img); | |
image(pimage, x, y, w, h); | |
} | |
void image(Mat img, float x, float y) | |
{ | |
image(img, x, y, img.cols(), img.rows()); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment