初次提交
This commit is contained in:
33
src/utils/utils.ts
Normal file
33
src/utils/utils.ts
Normal file
@ -0,0 +1,33 @@
|
||||
|
||||
export namespace utils {
|
||||
|
||||
export function rgba2rgb<T extends Uint8Array | Float32Array>(data: T): T {
|
||||
const pixelCount = data.length / 4;
|
||||
const result = new (data.constructor as any)(pixelCount * 3) as T;
|
||||
for (let i = 0; i < pixelCount; i++) {
|
||||
result[i * 3 + 0] = data[i * 4 + 0];
|
||||
result[i * 3 + 1] = data[i * 4 + 1];
|
||||
result[i * 3 + 2] = data[i * 4 + 2];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
export function rgb2bgr<T extends Uint8Array | Float32Array>(data: T): T {
|
||||
const pixelCount = data.length / 3;
|
||||
const result = new (data.constructor as any)(pixelCount * 3) as T;
|
||||
for (let i = 0; i < pixelCount; i++) {
|
||||
result[i * 3 + 0] = data[i * 3 + 2];
|
||||
result[i * 3 + 1] = data[i * 3 + 1];
|
||||
result[i * 3 + 2] = data[i * 3 + 0];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
export function normalize(data: Uint8Array | Float32Array, mean: number[], std: number[]): Float32Array {
|
||||
const result = new Float32Array(data.length);
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
result[i] = (data[i] - mean[i % mean.length]) / std[i % std.length];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user