调整大小并更改为灰度
resizing and changing to gray scale
我正在尝试拍摄一张 jpg 照片,并将其设为灰度并将其大小调整为 48x48 以供我的模型使用,
我试过了,但没用:
let image = require("../assets/angry.jpg");
const imageAssetPath = Image.resolveAssetSource(image);
const response = await fetch(imageAssetPath.uri, {}, { isBinary: true });
const imageData = await response.arrayBuffer();
let imageTensor = imageToTensor(imageData);
const imageResize = tf.image.resizeBilinear(imageTensor, [48, 48], true);
const imageToTensor = (rawData: ArrayBuffer) => {
const { width, height, data } = jpeg.decode(rawData, true);
const buffer = new Uint8Array(width * height * 3);
let offset = 0;
for (let i = 0; i < buffer.length; i += 3) {
buffer[i] = data[offset]; //red
buffer[i + 1] = data[offset + 1]; //green
buffer[i + 2] = data[offset + 2]; //blue
offset += 4; //skips Alpha value
}
return tf.tensor4d(buffer, [1, height, width, 3]);
};
图像正在调整为 48x48,但如何将其设为灰度?我尝试在 imageToTensor 函数中将数组更改为 [height,width,1] 但它只会弄乱图片,有什么建议吗?
没想到少了这么多方法!
你可以在python中查看rgb_to_grayscale
的来源
你会看到他们如何将 RGB 图像转换为灰度图像。
我试图在javascript中以同样的方式实现它,但是没有调用tf.tensordot
的函数。
以下是您的操作方法。
image = tf.ones([224, 224, 3])
rgb_weights = [0.2989, 0.5870, 0.1140]
image = tf.mul(image, rgb_weights)
image = tf.sum(image, axis=-1)
image = tf.expandDims(image, axis=-1)
我正在尝试拍摄一张 jpg 照片,并将其设为灰度并将其大小调整为 48x48 以供我的模型使用, 我试过了,但没用:
let image = require("../assets/angry.jpg");
const imageAssetPath = Image.resolveAssetSource(image);
const response = await fetch(imageAssetPath.uri, {}, { isBinary: true });
const imageData = await response.arrayBuffer();
let imageTensor = imageToTensor(imageData);
const imageResize = tf.image.resizeBilinear(imageTensor, [48, 48], true);
const imageToTensor = (rawData: ArrayBuffer) => {
const { width, height, data } = jpeg.decode(rawData, true);
const buffer = new Uint8Array(width * height * 3);
let offset = 0;
for (let i = 0; i < buffer.length; i += 3) {
buffer[i] = data[offset]; //red
buffer[i + 1] = data[offset + 1]; //green
buffer[i + 2] = data[offset + 2]; //blue
offset += 4; //skips Alpha value
}
return tf.tensor4d(buffer, [1, height, width, 3]);
};
图像正在调整为 48x48,但如何将其设为灰度?我尝试在 imageToTensor 函数中将数组更改为 [height,width,1] 但它只会弄乱图片,有什么建议吗?
没想到少了这么多方法!
你可以在python中查看rgb_to_grayscale
的来源
你会看到他们如何将 RGB 图像转换为灰度图像。
我试图在javascript中以同样的方式实现它,但是没有调用tf.tensordot
的函数。
以下是您的操作方法。
image = tf.ones([224, 224, 3])
rgb_weights = [0.2989, 0.5870, 0.1140]
image = tf.mul(image, rgb_weights)
image = tf.sum(image, axis=-1)
image = tf.expandDims(image, axis=-1)