Skip to content

Instantly share code, notes, and snippets.

View palmerc's full-sized avatar

Cameron Lowell Palmer palmerc

View GitHub Profile
@palmerc
palmerc / HDF5 Android How-to
Created February 3, 2017 08:36
Instructions on getting through HDF compilation for Android
How to build HDF5 for Android
References:
-----------
[1] http://developer.android.com/tools/sdk/ndk/index.html
[2] http://developer.android.com/sdk/index.html
import UIKit
public struct Pixel {
public var value: UInt32
public var red: UInt8 {
get {
return UInt8(value & 0xFF)
}
set {
@palmerc
palmerc / imageRoundtrip.swift
Last active April 15, 2024 03:35
Roundtrip a UIImage to its raw pixel values and back to an image again
import UIKit
import CoreGraphics
func imageFromPixelValues(pixelValues: [UInt8]?, width: Int, height: Int) -> CGImage?
{
var imageRef: CGImage?
if pixelValues != nil {
let imageDataPointer = UnsafeMutablePointer<UInt8>(pixelValues!)
let colorSpaceRef = CGColorSpaceCreateDeviceGray()
@palmerc
palmerc / playground.swift
Created January 1, 2016 20:49
Swift String Gymnastics
//: Playground - noun: a place where people can play
import Darwin
import Foundation
let clockFaces: String = "🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚"
let sortedClockFaces = Array(clockFaces.characters).sort()
let threeOClock = sortedClockFaces[2]
let aceOfSpades = "🂡"
@palmerc
palmerc / index.html
Created December 23, 2015 09:05
Autobahn Web Client
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var sock = null;
var ellog = null;
window.onload = function() {
var wsuri;
@palmerc
palmerc / naiveHough.m
Created December 11, 2015 14:05
Naive Hough Transform for Matlab
function [ Hough, theta_range, rho_range ] = naiveHough(I)
%NAIVEHOUGH Peforms the Hough transform in a straightforward way.
%
[rows, cols] = size(I);
theta_maximum = 90;
rho_maximum = floor(sqrt(rows^2 + cols^2)) - 1;
theta_range = -theta_maximum:theta_maximum - 1;
rho_range = -rho_maximum:rho_maximum;
Eigen::Vector4f planeEq;
Eigen::Matrix4f modelViewMatrix;
Eigen::Vector4f nPrime = modelViewMatrix.inverse() * Eigen::Vector4f(planeEq(0), planeEq(1), planeEq(2), 1.f);
nPrime.normalize();
Eigen::Vector3f clipPlaneNormalObjectSpace = Eigen::Vector3f(nPrime(0)/nPrime(3), nPrime(1)/nPrime(3), nPrime(2)/nPrime(3));
@palmerc
palmerc / sort.m
Created May 23, 2015 08:28
Obj-C Command-line Sort Example
#import <Foundation/Foundation.h>
#define randomNumber() (arc4random() % ((unsigned)1000000 + 1))
@interface MainHelper : NSObject
+ (NSArray *)largeArrayCreate;
@end
@implementation MainHelper
+ (NSArray *)largeArrayCreate
@palmerc
palmerc / blur.m
Last active October 10, 2017 02:38
vImage Blur Example
- (UIImage *)boxblurImage:(UIImage *)image boxSize:(int)boxSize
{
CGImageRef originalImageRef = image.CGImage;
CGColorSpaceRef originalColorSpace = CGColorSpaceRetain(CGImageGetColorSpace(originalImageRef));
if (_pixelBuffer == NULL) {
_pixelBuffer = malloc(CGImageGetBytesPerRow(originalImageRef) * CGImageGetHeight(originalImageRef));
}
vImage_CGImageFormat inputImageFormat =
@palmerc
palmerc / llvm-omp-environment.sh
Last active August 29, 2015 14:05
llvm-omp-environment.sh
#!/bin/bash
OPENMP_DIR=/usr/local/llvm-omp
export CC=${OPENMP_DIR}/bin/clang
export CXX=${OPENMP_DIR}/bin/clang++
export CMAKE_C_COMPILER=${CC}
export CMAKE_CXX_COMPILER=${CXX}
export PATH=${OPENMP_DIR}/bin:${PATH}
export C_INCLUDE_PATH=${OPENMP_DIR}/include:${C_INCLUDE_PATH}