Skip to content

Instantly share code, notes, and snippets.

@prisonerjohn
Last active October 6, 2019 02:28
Show Gist options
  • Save prisonerjohn/76985a0861c87f0370afc5170887ba0e to your computer and use it in GitHub Desktop.
Save prisonerjohn/76985a0861c87f0370afc5170887ba0e to your computer and use it in GitHub Desktop.
Pointers
#pragma once
#include "ofMain.h"
class ofApp : public ofBaseApp
{
public:
void setup();
void update();
void draw();
ofVideoGrabber grabber;
ofImage resultImg;
};
#include "ofApp.h"
void ofApp::setup()
{
ofSetWindowShape(640 * 2, 480);
grabber.setup(640, 480);
resultImg.allocate(640, 480, OF_IMAGE_GRAYSCALE);
}
void ofApp::update()
{
grabber.update();
int threshold = 127;
unsigned char* grabberData = grabber.getPixels().getData();
unsigned char* resultData = resultImg.getPixels().getData();
for (int i = 0; i < grabber.getWidth() * grabber.getHeight(); i++)
{
int r = grabberData[i * 3 + 0];
int g = grabberData[i * 3 + 1];
int b = grabberData[i * 3 + 2];
if (r > threshold && g > threshold && b > threshold)
{
resultData[i] = 255;
}
else
{
resultData[i] = 0;
}
}
resultImg.update();
}
void ofApp::draw()
{
grabber.draw(0, 0, 640, 480);
resultImg.draw(640, 0, 640, 480);
}
#include "ofApp.h"
void ofApp::setup()
{
ofSetWindowShape(640 * 2, 480);
grabber.setup(640, 480);
resultImg.allocate(640, 480, OF_IMAGE_GRAYSCALE);
}
void ofApp::update()
{
grabber.update();
int threshold = 127;
unsigned char* grabberPtr = grabber.getPixels().getData();
unsigned char* resultPtr = resultImg.getPixels().getData();
for (int i = 0; i < grabber.getWidth() * grabber.getHeight(); i++)
{
int r = *(grabberPtr++);
int g = *(grabberPtr++);
int b = *(grabberPtr++);
if (r > threshold && g > threshold && b > threshold)
{
*resultPtr = 255;
}
else
{
*resultPtr = 0;
}
resultPtr++;
}
resultImg.update();
}
void ofApp::draw()
{
grabber.draw(0, 0, 640, 480);
resultImg.draw(640, 0, 640, 480);
}
#include "ofApp.h"
void ofApp::setup()
{
loadImageVal(puppiesImg, "puppies.jpg");
//loadImageRef(puppiesImg, "puppies.jpg");
//loadImagePtr(&puppiesImg, "puppies.jpg");
}
void ofApp::update()
{
}
void ofApp::draw()
{
puppiesImg.draw(0, 0);
}
bool ofApp::loadImageVal(ofImage img, std::string file)
{
return img.load(file);
}
bool ofApp::loadImageRef(ofImage& img, std::string file)
{
return img.load(file);
}
bool ofApp::loadImagePtr(ofImage* img, std::string file)
{
return img->load(file);
}
#pragma once
#include "ofMain.h"
class ofApp : public ofBaseApp
{
public:
void setup();
void update();
void draw();
void exit();
bool loadImageVal(ofImage img, std::string file);
bool loadImageRef(ofImage& img, std::string file);
bool loadImagePtr(ofImage* img, std::string file);
ofImage puppiesImg;
};
#include "ofApp.h"
void ofApp::setup()
{
//puppiesPtr = new ofImage();
//loadImageVal(*puppiesPtr, "puppies.jpg");
//loadImageRef(*puppiesPtr, "puppies.jpg");
loadImagePtr(puppiesPtr, "puppies.jpg");
}
void ofApp::exit()
{
delete puppiesPtr;
}
void ofApp::update()
{
}
void ofApp::draw()
{
puppiesPtr->draw(0, 0);
}
bool ofApp::loadImageVal(ofImage img, std::string file)
{
return img.load(file);
}
bool ofApp::loadImageRef(ofImage& img, std::string file)
{
return img.load(file);
}
bool ofApp::loadImagePtr(ofImage* img, std::string file)
{
return img->load(file);
}
#pragma once
#include "ofMain.h"
class ofApp : public ofBaseApp
{
public:
void setup();
void update();
void draw();
void exit();
bool loadImageVal(ofImage img, std::string file);
bool loadImageRef(ofImage& img, std::string file);
bool loadImagePtr(ofImage* img, std::string file);
ofImage* puppiesPtr;
};
#include "ofApp.h"
void ofApp::setup()
{
puppiesPtrToLoad = new ofImage();
loadImagePtr(puppiesPtrToLoad, "puppies.jpg");
puppiesPtrToDraw = puppiesPtrToLoad;
}
void ofApp::exit()
{
delete puppiesPtrToLoad;
puppiesPtrToLoad = nullptr;
}
void ofApp::update()
{
}
void ofApp::draw()
{
if (puppiesPtrToDraw != nullptr)
{
puppiesPtrToDraw->draw(0, 0);
}
}
void ofApp::mousePressed(int x, int y, int button)
{
delete puppiesPtrToLoad;
puppiesPtrToLoad = nullptr;
}
bool ofApp::loadImagePtr(ofImage* img, std::string file)
{
return img->load(file);
}
#pragma once
#include "ofMain.h"
class ofApp : public ofBaseApp
{
public:
void setup();
void update();
void draw();
void exit();
void mousePressed(int x, int y, int button);
bool loadImagePtr(ofImage* img, std::string file);
ofImage* puppiesPtrToLoad;
ofImage* puppiesPtrToDraw;
};
#include "ofApp.h"
void ofApp::setup()
{
puppiesPtrToLoad = std::make_shared<ofImage>();
loadImagePtr(puppiesPtrToLoad, "puppies.jpg");
puppiesPtrToDraw = puppiesPtrToLoad;
}
void ofApp::update()
{
}
void ofApp::draw()
{
if (puppiesPtrToDraw)
{
puppiesPtrToDraw->draw(0, 0);
}
}
void ofApp::mousePressed(int x, int y, int button)
{
if (button == 0)
{
puppiesPtrToLoad.reset();
}
else
{
puppiesPtrToDraw.reset();
}
}
bool ofApp::loadImagePtr(std::shared_ptr<ofImage> img, std::string file)
{
return img->load(file);
}
#pragma once
#include "ofMain.h"
class ofApp : public ofBaseApp
{
public:
void setup();
void update();
void draw();
void mousePressed(int x, int y, int button);
bool loadImagePtr(std::shared_ptr<ofImage> img, std::string file);
std::shared_ptr<ofImage> puppiesPtrToLoad;
std::shared_ptr<ofImage> puppiesPtrToDraw;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment