|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Net;
|
|
|
|
|
using System.Windows;
|
|
|
|
|
using System.Windows.Controls;
|
|
|
|
|
using System.Windows.Navigation;
|
|
|
|
|
using Microsoft.Phone.Controls;
|
|
|
|
|
using Microsoft.Phone.Shell;
|
|
|
|
|
using OpenCVXaml.Resources;
|
|
|
|
|
using System.Windows.Media.Imaging;
|
|
|
|
|
using OpenCVComponent;
|
|
|
|
|
|
|
|
|
|
namespace OpenCVXaml
|
|
|
|
|
{
|
|
|
|
|
public partial class MainPage : PhoneApplicationPage
|
|
|
|
|
{
|
|
|
|
|
private OpenCVLib m_opencv = new OpenCVLib();
|
|
|
|
|
|
|
|
|
|
// Constructor
|
|
|
|
|
public MainPage()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
|
|
|
|
|
// Sample code to localize the ApplicationBar
|
|
|
|
|
//BuildLocalizedApplicationBar();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async void Button_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (Preview.Source != null)
|
|
|
|
|
{
|
|
|
|
|
ProcessButton.IsEnabled = false;
|
|
|
|
|
|
|
|
|
|
// Get WriteableBitmap. ImageToModify is defined in MainPage.xaml
|
|
|
|
|
WriteableBitmap bitmap = new WriteableBitmap(Preview.Source as BitmapSource);
|
|
|
|
|
|
|
|
|
|
// call OpenCVLib to convert pixels to grayscale. This is an asynchronous call.
|
|
|
|
|
var pixels = await m_opencv.ProcessAsync(bitmap.Pixels, bitmap.PixelWidth, bitmap.PixelHeight);
|
|
|
|
|
|
|
|
|
|
// copy the pixels into the WriteableBitmap
|
|
|
|
|
for (int x = 0; x < bitmap.Pixels.Length; x++)
|
|
|
|
|
{
|
|
|
|
|
bitmap.Pixels[x] = pixels[x];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Set Image object, defined in XAML, to the modified bitmap.
|
|
|
|
|
Preview.Source = bitmap;
|
|
|
|
|
|
|
|
|
|
ProcessButton.IsEnabled = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Sample code for building a localized ApplicationBar
|
|
|
|
|
//private void BuildLocalizedApplicationBar()
|
|
|
|
|
//{
|
|
|
|
|
// // Set the page's ApplicationBar to a new instance of ApplicationBar.
|
|
|
|
|
// ApplicationBar = new ApplicationBar();
|
|
|
|
|
|
|
|
|
|
// // Create a new button and set the text value to the localized string from AppResources.
|
|
|
|
|
// ApplicationBarIconButton appBarButton = new ApplicationBarIconButton(new Uri("/Assets/AppBar/appbar.add.rest.png", UriKind.Relative));
|
|
|
|
|
// appBarButton.Text = AppResources.AppBarButtonText;
|
|
|
|
|
// ApplicationBar.Buttons.Add(appBarButton);
|
|
|
|
|
|
|
|
|
|
// // Create a new menu item with the localized string from AppResources.
|
|
|
|
|
// ApplicationBarMenuItem appBarMenuItem = new ApplicationBarMenuItem(AppResources.AppBarMenuItemText);
|
|
|
|
|
// ApplicationBar.MenuItems.Add(appBarMenuItem);
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
}
|