pub struct ImageAnalysis { /* private fields */ }Implementations§
Source§impl ImageAnalysis
impl ImageAnalysis
Sourcepub fn transcript(&self) -> Result<String, VisionKitError>
pub fn transcript(&self) -> Result<String, VisionKitError>
Examples found in repository?
examples/06_image_analysis.rs (line 31)
12fn main() -> Result<(), Box<dyn std::error::Error>> {
13 if !ImageAnalyzer::is_supported() {
14 println!("ImageAnalyzer is not supported on this Mac");
15 return Ok(());
16 }
17
18 let analyzer = ImageAnalyzer::new()?;
19 let analysis = analyzer.analyze_cg_image_at_path(
20 asset_path(),
21 ImageOrientation::Up,
22 &ImageAnalyzerConfiguration::new(
23 ImageAnalysisTypes::TEXT | ImageAnalysisTypes::MACHINE_READABLE_CODE,
24 ),
25 )?;
26
27 println!(
28 "has text results: {}",
29 analysis.has_results(ImageAnalysisTypes::TEXT)?
30 );
31 println!("transcript: {}", analysis.transcript()?);
32 Ok(())
33}More examples
examples/04_image_analyzer.rs (line 57)
12fn main() -> Result<(), Box<dyn std::error::Error>> {
13 let configuration = ImageAnalyzerConfiguration::new(
14 ImageAnalysisTypes::TEXT | ImageAnalysisTypes::MACHINE_READABLE_CODE,
15 )
16 .with_locales(["en-US"]);
17 println!(
18 "supported OCR languages: {}",
19 ImageAnalyzer::supported_text_recognition_languages()?.len()
20 );
21
22 if !ImageAnalyzer::is_supported() {
23 println!("ImageAnalyzer is not supported on this Mac");
24 return Ok(());
25 }
26
27 let analyzer = ImageAnalyzer::new()?;
28 let asset_path = asset_path();
29 let analyses = [
30 (
31 "imageAt:url",
32 analyzer.analyze_image_at_path(&asset_path, ImageOrientation::Up, &configuration)?,
33 ),
34 (
35 "nsimage",
36 analyzer.analyze_ns_image_at_path(&asset_path, ImageOrientation::Up, &configuration)?,
37 ),
38 (
39 "cgimage",
40 analyzer.analyze_cg_image_at_path(&asset_path, ImageOrientation::Up, &configuration)?,
41 ),
42 (
43 "ciimage",
44 analyzer.analyze_ci_image_at_path(&asset_path, ImageOrientation::Up, &configuration)?,
45 ),
46 (
47 "pixelBuffer",
48 analyzer.analyze_pixel_buffer_at_path(
49 &asset_path,
50 ImageOrientation::Up,
51 &configuration,
52 )?,
53 ),
54 ];
55
56 for (label, analysis) in analyses {
57 println!("{label}: {}", analysis.transcript()?);
58 }
59 Ok(())
60}examples/02_framework_smoke.rs (line 49)
12fn main() -> Result<(), Box<dyn std::error::Error>> {
13 println!("== VisionKit.framework smoke ==");
14 println!("ImageAnalyzer supported: {}", ImageAnalyzer::is_supported());
15 println!(
16 "document camera available on macOS: {}",
17 VNDocumentCameraViewController::is_available_on_current_platform()?
18 );
19 println!(
20 "data scanner available on macOS: {}",
21 DataScannerViewController::is_available_on_current_platform()?
22 );
23
24 let languages = ImageAnalyzer::supported_text_recognition_languages()?;
25 println!("supported OCR languages: {}", languages.len());
26 println!(
27 "sample OCR languages: {:?}",
28 languages.iter().take(10).collect::<Vec<_>>()
29 );
30
31 if !ImageAnalyzer::is_supported() {
32 println!("ImageAnalyzer is not supported on this Mac");
33 return Ok(());
34 }
35
36 let analyzer = ImageAnalyzer::new()?;
37 let configuration = ImageAnalyzerConfiguration::new(
38 ImageAnalysisTypes::TEXT | ImageAnalysisTypes::MACHINE_READABLE_CODE,
39 )
40 .with_locales(["en-US"]);
41 let asset_path = asset_path();
42 let analysis =
43 analyzer.analyze_image_at_path(&asset_path, ImageOrientation::Up, &configuration)?;
44
45 println!(
46 "has text results: {}",
47 analysis.has_results(ImageAnalysisTypes::TEXT)?
48 );
49 let transcript = analysis.transcript()?;
50 println!("transcript: {transcript:?}");
51
52 let interaction = LiveTextInteraction::new()?;
53 interaction.track_image_at_path(&asset_path)?;
54 interaction.set_analysis(&analysis)?;
55 println!(
56 "overlay preferred types: {}",
57 interaction.preferred_interaction_types()?.bits()
58 );
59 let overlay_text = interaction.text();
60 println!("overlay text: {overlay_text:?}");
61 Ok(())
62}Sourcepub fn has_results(
&self,
analysis_types: ImageAnalysisTypes,
) -> Result<bool, VisionKitError>
pub fn has_results( &self, analysis_types: ImageAnalysisTypes, ) -> Result<bool, VisionKitError>
Examples found in repository?
examples/06_image_analysis.rs (line 29)
12fn main() -> Result<(), Box<dyn std::error::Error>> {
13 if !ImageAnalyzer::is_supported() {
14 println!("ImageAnalyzer is not supported on this Mac");
15 return Ok(());
16 }
17
18 let analyzer = ImageAnalyzer::new()?;
19 let analysis = analyzer.analyze_cg_image_at_path(
20 asset_path(),
21 ImageOrientation::Up,
22 &ImageAnalyzerConfiguration::new(
23 ImageAnalysisTypes::TEXT | ImageAnalysisTypes::MACHINE_READABLE_CODE,
24 ),
25 )?;
26
27 println!(
28 "has text results: {}",
29 analysis.has_results(ImageAnalysisTypes::TEXT)?
30 );
31 println!("transcript: {}", analysis.transcript()?);
32 Ok(())
33}More examples
examples/02_framework_smoke.rs (line 47)
12fn main() -> Result<(), Box<dyn std::error::Error>> {
13 println!("== VisionKit.framework smoke ==");
14 println!("ImageAnalyzer supported: {}", ImageAnalyzer::is_supported());
15 println!(
16 "document camera available on macOS: {}",
17 VNDocumentCameraViewController::is_available_on_current_platform()?
18 );
19 println!(
20 "data scanner available on macOS: {}",
21 DataScannerViewController::is_available_on_current_platform()?
22 );
23
24 let languages = ImageAnalyzer::supported_text_recognition_languages()?;
25 println!("supported OCR languages: {}", languages.len());
26 println!(
27 "sample OCR languages: {:?}",
28 languages.iter().take(10).collect::<Vec<_>>()
29 );
30
31 if !ImageAnalyzer::is_supported() {
32 println!("ImageAnalyzer is not supported on this Mac");
33 return Ok(());
34 }
35
36 let analyzer = ImageAnalyzer::new()?;
37 let configuration = ImageAnalyzerConfiguration::new(
38 ImageAnalysisTypes::TEXT | ImageAnalysisTypes::MACHINE_READABLE_CODE,
39 )
40 .with_locales(["en-US"]);
41 let asset_path = asset_path();
42 let analysis =
43 analyzer.analyze_image_at_path(&asset_path, ImageOrientation::Up, &configuration)?;
44
45 println!(
46 "has text results: {}",
47 analysis.has_results(ImageAnalysisTypes::TEXT)?
48 );
49 let transcript = analysis.transcript()?;
50 println!("transcript: {transcript:?}");
51
52 let interaction = LiveTextInteraction::new()?;
53 interaction.track_image_at_path(&asset_path)?;
54 interaction.set_analysis(&analysis)?;
55 println!(
56 "overlay preferred types: {}",
57 interaction.preferred_interaction_types()?.bits()
58 );
59 let overlay_text = interaction.text();
60 println!("overlay text: {overlay_text:?}");
61 Ok(())
62}Trait Implementations§
Source§impl Drop for ImageAnalysis
impl Drop for ImageAnalysis
Auto Trait Implementations§
impl Freeze for ImageAnalysis
impl RefUnwindSafe for ImageAnalysis
impl !Send for ImageAnalysis
impl !Sync for ImageAnalysis
impl Unpin for ImageAnalysis
impl UnsafeUnpin for ImageAnalysis
impl UnwindSafe for ImageAnalysis
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more