cp_image_js
Version:
A Pure Javascript Version for image processing: -filter,threshold,contour
73 lines (51 loc) • 2.6 kB
JavaScript
var cp_image = require("../index");
var imagePath = './output';
var grayMat = null;
beforeEach(() => {
var imageFile = './images/waffle.bmp';
console.log('test image path: ' + imageFile);
var mat = cp_image.matUtil.readMat(imageFile);
grayMat = cp_image.imageprocess.util().gray(mat);
});
afterEach(() => {
});
test('labeling test', () => {
// validate labeling
var label_index = 100;
do {
var blackPoint = cp_image.imageprocess.util().getCenterPoint(grayMat);
console.log('blackPoint: ', blackPoint);
console.log(label_index);
var labelMat = cp_image.imageprocess.label(grayMat).label(blackPoint, label_index += 10);
cp_image.matUtil.writeBmpMat(imagePath + '/labeling.bmp', labelMat);
// 6. find contour
var points = cp_image.imageprocess.contour(labelMat).findContour();
var drawMat = cp_image.imageprocess.draw(grayMat).drawPoints(points, 0);
cp_image.matUtil.writeBmpMat(imagePath + '/6_1_detect_contour_points_draw.bmp', drawMat);
var rectangle = cp_image.imageprocess.contour(grayMat).getShape(points);
// get max rectangle shape
var drawShapeMat = cp_image.imageprocess.draw(drawMat).drawRectangleOnMat(grayMat, rectangle, 120);
cp_image.matUtil.writeBmpMat(imagePath + '/6_2_detect_contour_points_draw_rectangle.bmp', drawShapeMat);
// get avg rectangle shape
var avgRectangle = cp_image.imageprocess.contour(grayMat).getAvgShape(points);
var drawShapeMat = cp_image.imageprocess.draw(drawMat).drawRectangleOnMat(drawShapeMat, avgRectangle, 255);
cp_image.matUtil.writeBmpMat(imagePath + '/6_3_detect_contour_points_draw_avg_rectangle.bmp', drawShapeMat);
avgRectangle = rectangle;
//break;
} while (label_index <= 200);
console.log('validated', label_index);
//matUtil.writeBmpMat(imagePath + '/6_4_detect_after_label.bmp', dilateMat);
});
test.only('labeling.bmp-test', () => {
var imageFile = './images/labeling.bmp';
console.log('test image path: ' + imageFile);
var label_index = 100;
var mat = cp_image.matUtil.readMat(imageFile);
grayMat = cp_image.imageprocess.util().gray(mat);
cp_image.matUtil.writeBmpMat(imagePath + '/labeling_input.bmp', grayMat);
var blackPoint = cp_image.imageprocess.util().getCenterPoint(grayMat);
console.log('blackPoint: ', blackPoint);
var labelMat = cp_image.imageprocess.label(grayMat).label(blackPoint, label_index += 250);
cp_image.matUtil.writeBmpMat(imagePath + '/labeling.bmp', labelMat);
});
//