Beispiel #1
0
//
// TODO([email protected]): finish implementation
//
ofBuffer ofxEpilog::createPayloadRasterBody(ofImage raster_img, OutputConfig &out_conf)
{
    ofLog(OF_LOG_WARNING) << "bool ofxEpilog::createPayloadRasterBody(ofImage raster_img, OutputConfig &out_conf) is not implemented yet.";
    
    // payload buffer
    ofBuffer buffer;
    
    // add raster image part
    if(raster_img.isAllocated())
    {
        //
        // convert to PCL raster format from ofImage
        //
    }
    return buffer;
}
void ofxDepthImageCompressor::convertTo8BitImage(unsigned short* buf, ofImage& image){
	int nearPlane = 500;
	int farPlane = 7000;
	if(!image.isAllocated()){
		image.allocate(640,480,OF_IMAGE_GRAYSCALE);
	}
	unsigned char* pix = image.getPixels();
	int stride = image.getPixelsRef().getNumChannels();
	for(int i = 0; i < 640*480; i++){
		//ofMap(buf[i], nearPlane, farPlane, 255, 0, true);
		unsigned char value = buf[i] == 0 ? 0 : 255 - (255 * (buf[i] - nearPlane) ) / farPlane;// + ofMap(buf[i], nearPlane, farPlane, 255, 0, true);
		for(int c = 0; c < stride; c++){
			pix[i*stride+c] = value;
		}
	}
	
	image.update();
}
Beispiel #3
0
ofBuffer ofxEpilog::createPayloadCombinedBody(ofImage raster_img, ofPolyline vector_vertexes)
{
    if(!raster_img.isAllocated())
        return;
    if(vector_vertexes.size() == 0)
        return;

    ofBuffer buffer;
    buffer.append(createPayloadRasterBody(raster_img, getOutputConfig()));
    
    // end raster part regardless of it's empty
    buffer.append(PCL_RASTER_END);
    
    // begin HPGL commands (vector part)
    buffer.append(HPGL_START);
    buffer.append(HPGL_VECTOR_INIT + HPGL_CMD_DELIMITER);

    buffer.append(createPayloadVectorBody(vector_vertexes, getOutputConfig()));

    return buffer;
}
Beispiel #4
0
bool ofxEpilog::send(ofImage img, int w_mm, int h_mm)
{
    //
    // TODO([email protected]): finish implementation
    //
    
    if(!img.isAllocated())
        return false;
    
    if(w_mm <= 0 || h_mm <= 0)
        return false;

    ofLog(OF_LOG_WARNING) << "bool ofxEpilog::send(ofImage img, int w_mm, int h_mm) is not implemented yet.";
    return false;
    
    //
    // dummy implementation
    //
    ofBuffer buffer;
    buffer.append(createPayloadHeader(getMachineProfile(), getOutputConfig()));
    
    // create raster part
    buffer.append(createPayloadRasterBody(img, getOutputConfig()));
    
    // end raster part regardless of it's empty
    buffer.append(PCL_RASTER_END);
    
    // begin HPGL commands (vector part)
    buffer.append(HPGL_START);
    buffer.append(HPGL_VECTOR_INIT + HPGL_CMD_DELIMITER);
    
    if(!keep_alive)
        buffer.append(createPayloadFooter()); // end the session
    
    if(pjl_file.get() != NULL)
        pjl_file->writeFromBuffer(buffer);
    
    return tcp_client.sendRaw(buffer);
}
//--------------------------------------------------------------
void testApp::draw()
{
	if (image.isAllocated())
		image.draw(0, 0);
}
Beispiel #6
0
	void update() {
#ifdef INSTALL
		if(cam.update()) {
			ofPixels& pixels = cam.getColorPixels();
#else
		cam.update();
		if(cam.isFrameNew()) {
			ofPixels& pixels = cam.getPixelsRef();
#endif
			// next two could be replaced with one line
			ofxCv::rotate90(pixels, rotated, rotate ? 270 : 0);
			ofxCv:flip(rotated, rotated, 1);
			Mat rotatedMat = toCv(rotated);
			if(tracker.update(rotatedMat))  {
				ofVec2f position = tracker.getPosition();
				vector<FaceTrackerData*> neighbors = data.getNeighborsCount(position, neighborCount);
				FaceTrackerData curData;
				curData.load(tracker);
				if(!neighbors.empty()) {
					nearestData = *faceCompare.nearest(curData, neighbors);
					if(nearestData.label != lastLabel) {
						similar.loadImage(nearestData.getImageFilename());
#ifdef INSTALL
						whitePoint = getWhitePoint(similar);
#else
						whitePoint.set(1, 1, 1);
#endif
					}
					lastLabel = nearestData.label;
				}
				if(faceCompare.different(curData, currentData) && faceCompare.different(curData, neighbors)) {
					saveFace(curData, rotated);
					currentData.push_back(pair<ofVec2f, FaceTrackerData>(position, curData));
				}
			}
			presence.update(tracker.getFound());
			if(presence.wasTriggered()) {
				presenceFade.stop();
			}
			if(presence.wasUntriggered()) {
				for(int i = 0; i < currentData.size(); i++) {
					data.add(currentData[i].first, currentData[i].second);
				}
				currentData.clear();
				presenceFade.start();
			}
		}
	}
	void draw() {
		ofBackground(255);
		CGDisplayHideCursor(NULL);
		ofSetColor(255);
		if(similar.isAllocated()) {
			shader.begin();
			shader.setUniformTexture("tex", similar, 0);
			shader.setUniform3fv("whitePoint", (float*) &whitePoint);
			similar.draw(0, 0);
			shader.end();
		}
		ofPushStyle();
		if(presenceFade.getActive()) {
			ofSetColor(0, ofMap(presenceFade.get(), 0, 1, 0, 128));
			ofFill();
			ofRect(0, 0, ofGetWidth(), ofGetHeight());
			ofSetColor(255, ofMap(presenceFade.get(), 0, 1, 0, 32));
			data.drawBins();
			ofSetColor(255, ofMap(presenceFade.get(), 0, 1, 0, 64));
			data.drawData();
		}
		ofSetColor(255, 64);
		ofNoFill();
		if(!tracker.getFound()) {
			ofCircle(tracker.getPosition(), 10);
		}
		tracker.draw();
		ofPopStyle();
		
#ifndef INSTALL
		drawFramerate();
#endif
	}