问题描述
我已经阅读了 ARKit 官方教程 RealtimeNumberReader,它使用了 AVCaptureSession 和一个特定的函数 layerRectConverted,它仅用于 AVCaptureSession 将坐标从边界框转换为屏幕坐标。
import React,{ createContext,useState } from 'react';
export const MoviesDataContext = createContext();
export default function GlobalMoviesProvider ({children}) {
const [movie,setMovie] = useState({
title: 'my test',release_date:'here we are ',rating:'ouh'
});
const value = {
movie,setMovie,}
return (
<MoviesDataContext.Provider value={value}>
{children}
</MoviesDataContext.Provider>
);
}
import React,{useContext} from 'react';
import {MoviesDataContext} from './MoviesDataContext';
const ButtonModalUpdater = () => {
const {movie} = useContext(MoviesDataContext);
console.log(movie);
return (
<h1></h1>
);
};
export default ButtonModalUpdater;
import React,{createContext,useState} from "react";
import ReactDom from 'react-dom';
import {ButtonModalUpdater} from './ButtonModalUpdater'
import GlobalMoviesProvider from './MoviesDataContext'
function App() {
const [movies,setMovies] = useState(
[
{id:1,title:'comming to america',rating:5,release_date:'2020-12-22'},{id:2,title:'Instant Family',rating:3,release_date:'1995-12-22'},{id:3,title:'The Dig',release_date:'2009-05-24'},{id:4,title:'The Wonder',rating:4,release_date:'2012-07-12'},{id:5,title:'The Rampage',release_date:'2012-10-07'},]
);
const [directors,setDirectors] = useState(
[
{first_name: 'Desiree',family_name: 'Akhavan',address: 'Oneroadstreet New York City'},{first_name: 'Chris',family_name:'John Barfoot',address: 'Somewherein the UK'},{first_name: 'Benjamin Geza',family_name:'Affleck-Boldt',address: 'Berkeley california'},{first_name: 'John',family_name:'Berry',address: 'The Bronx,New York'},{first_name: 'Terence',family_name:'Fisher',address: 'Maid vale,County of London,England'}
]
);
return (
<GlobalMoviesProvider>
<div className="App">
<h1> Movie data Application</h1>
<ButtonModalUpdater />
</div>
</GlobalMoviesProvider>
);
}
ReactDom.render(React.createElement(App),document.getElementById("root"));
现在我想识别 ARFrame 的 capturedImage 上的文本,然后在屏幕上显示绑定框。可能吗?
我知道如何从官方 tutorial 识别单个图像上的文本,我的问题是如何将规范化的框坐标转换为视口坐标。
请帮忙,非常感谢!!!
解决方法
Try looking at this git repo. 自己弄乱了它,它不是性能最好的,但这应该给你一个开始。
,根据@Banane42 的回答,我找到了 ARkit
和 VNRecognizeTextRequest
背后的理论
-
场景视图或图像的坐标起源于
top left
角,x-axis
-> 向右,y-axis
-> 底部。但是boundingBox
返回的VNRequest
的坐标是从bottom left
角和x-axis
->向右和y-axis
->到顶部。 -
如果你使用
request.regionOfInterest
,这个ROI应该是相对于整个图像的标准化坐标。返回的VNRequest boundingBox
是相对于 ROI 框的标准化坐标。