сравнение изображений каналов в Android и Matlab - PullRequest
0 голосов
/ 02 мая 2018

, поэтому у меня есть изображение в оттенках серого 1024x1024, когда я открываю это изображение с помощью matlab, matlab обнаруживает, что изображение имеет размер 1024x1024 uint8.

matlab image value detection

проблема в том, что когда я делаю обработку изображений с помощью Android, где я делю изображение на несколько частей, затем выполняю процесс атаки для некоторых частей изображения, а затем повторно объединяю изображение. затем я открываю изображение результата атаки с помощью matlab, и matlab определяет размер изображения 1024x1024x3 uint8. Я попытался изменить изображение с помощью функции cvtColor, предоставляемой opencv, чтобы изменить канал изображения, но изображение все еще считается 3-канальным по методу MATLAB. это пример изображения до и после выполненной обработки изображения с помощью Android (слева: до атаки, справа: после атаки)

left:before attacking, right:after attacking

это одна из атакующих функций с именем gaussian noised, которую я реализую с помощью android

private Bitmap GaussianNoise(Bitmap src, double variance) {
    Bitmap hasil = src;
    Mat input = new Mat();
    Mat imGray = new Mat();
    Utils.bitmapToMat(src, input);
    Imgproc.cvtColor(input, imGray, Imgproc.COLOR_RGBA2GRAY);
    Mat noise = new Mat(imGray.size(), CvType.CV_64F);
    Mat resultMat = new Mat();

    Core.normalize(imGray, resultMat, 0.0, 1.0, Core.NORM_MINMAX, CV_64F);
    Core.randn(noise, 0, Math.sqrt(variance));
    Core.add(resultMat, noise, resultMat);
    Core.normalize(resultMat, resultMat, 0.0, 1.0, Core.NORM_MINMAX, CV_64F);
    resultMat.convertTo(resultMat, imGray.type(), 255, 0);
    Utils.matToBitmap(resultMat, hasil);
    return hasil;
}

все формы помощи будут высоко оценены

...