Проблемы с реализацией плагина для обнаружения рака кожи в React Native с использованием Vision Camera и Fast OpenCVC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Проблемы с реализацией плагина для обнаружения рака кожи в React Native с использованием Vision Camera и Fast OpenCV

Сообщение Anonymous »

Я работаю над проектом с использованием процессора кадров React Native Vision Camera, и мне может понадобиться помощь. Я пытаюсь создать плагин для определения чистой кожи, гарантируя отсутствие волос, грязи и других загрязнений. Как только будет обнаружена чистая кожа, следующим шагом будет выявление пятен или родинок, которые могут быть признаками рака кожи.
Сначала я пытался создать собственный модуль, используя OpenCV, для управления логикой обнаружения, с целью обработки кадров и выявления чистой кожи с последующими пятнами или родинками. Однако я столкнулся с проблемами, связанными с тем, что XCode не правильно определял пути OpenCV. В качестве обходного пути я перешел на использование React Native Fast OpenCV. Логика определения чистой кожи относительно проста и включает в себя определение цвета в определенном диапазоне.
Однако мне сложно реализовать логику C++ для остальной части процесса обнаружения, например выявление и анализ пятен или родинок. Поскольку у меня нет большого опыта работы с C++, мне оказалось довольно сложно собрать воедино эту логику. Буду очень признателен за любые советы и примеры!
Вот мой текущий код для определения чистой кожи:
import { PaintStyle, Skia } from '@shopify/react-native-skia';
import { useEffect } from 'react';
import { StyleSheet, Text } from 'react-native';
import { OpenCV, ObjectType, DataTypes, ColorConversionCodes } from 'react-native-fast-opencv';
import { Camera, useCameraDevice, useCameraPermission, useSkiaFrameProcessor } from 'react-native-vision-camera';
import { useResizePlugin } from 'vision-camera-resize-plugin';

const paint = Skia.Paint();
paint.setStyle(PaintStyle.Fill);
paint.setColor(Skia.Color('rgba(255,0,0,0.4)'));

const App = () => {
const device = useCameraDevice('back');
const { hasPermission, requestPermission } = useCameraPermission();
const { resize } = useResizePlugin();

useEffect(() => {
requestPermission();
}, [requestPermission]);

const frameProcessor = useSkiaFrameProcessor((frame) => {
'worklet';
const height = frame.height / 4;
const width = frame.width / 4;
const resized = resize(frame, {
scale: { width, height },
pixelFormat: 'bgr',
dataType: 'uint8',
});

const src = OpenCV.frameBufferToMat(height, width, 3, resized);
const dst = OpenCV.createObject(ObjectType.Mat, 0, 0, DataTypes.CV_8U);

// Convert frame to HSV
OpenCV.invoke('cvtColor', src, dst, ColorConversionCodes.COLOR_BGR2HSV);
// Adjusted HSV range for human skin color detection
const lowerBound = OpenCV.createObject(ObjectType.Scalar, 0, 20, 70);
const upperBound = OpenCV.createObject(ObjectType.Scalar, 30, 255, 255);
OpenCV.invoke('inRange', dst, lowerBound, upperBound, dst);

// Here you should add the logic for detecting spots or moles
// Help me build the C++ logic for this part

}, []);

if (!hasPermission) {
return No permission;
}

if (device == null) {
return No device;
}

return (

);
};

export default App;


Подробнее здесь: https://stackoverflow.com/questions/791 ... -vision-ca
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»