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