Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | /** * Extracts the luminance values from a specified region of an image. * * @param {Object} imageData - The image data object containing pixel information. * @param {Uint8Array} imageData.scalarData - The pixel data array. * @param {boolean} imageData.color - A flag indicating if the image is in color (true) or grayscale (false). * @param {number} imageData.columns - The number of columns (width) in the image. * @param {number} x - The x-coordinate of the top-left corner of the region. * @param {number} y - The y-coordinate of the top-left corner of the region. * @param {number} width - The width of the region. * @param {number} height - The height of the region. * @returns {number[]} An array containing the luminance values of the specified region. */ function getLuminanceFromRegion(imageData, x, y, width, height) { const luminance = []; let index = 0; const pixelData = imageData.scalarData; let spIndex, row, column; if (imageData.color) { for (row = 0; row < height; row++) { for (column = 0; column < width; column++) { spIndex = ((row + y) * imageData.columns + (column + x)) * 4; const red = pixelData[spIndex]; const green = pixelData[spIndex + 1]; const blue = pixelData[spIndex + 2]; luminance[index++] = 0.2126 * red + 0.7152 * green + 0.0722 * blue; } } } else { for (row = 0; row < height; row++) { for (column = 0; column < width; column++) { spIndex = (row + y) * imageData.columns + (column + x); luminance[index++] = pixelData[spIndex]; } } } return luminance; } export { getLuminanceFromRegion }; |