Вы можете рассчитывать интеграл в каждой строке и столбце. Затем найдите места, где этот интеграл постоянно растет. Здесь вы также можете добавить некоторую скользящую среднюю, чтобы исключить шум и т. Д. Тогда это означает, что здесь более белый, чем в других частях. Теперь вы можете использовать функцию прямоугольника из openCV для рисования прямоугольника вокруг этой области ( http://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html#rectangle ).
текст ссылки Этот пример работает
JavaScriptSerializer serializer = new JavaScriptSerializer();
DateTime dt = DateTime.Now;
DateTime dt1 = dt;
string jsonDateNow = serializer.Serialize(dt1);
ответ таков: вы не можете использовать JavaScriptConverter таким образом ... у него нет возможностей.
но для справки:
Как мне отформатировать дату Microsoft JSON? http://blog.stevenlevithan.com/archives/date-time-format
Если вам не безразлично, то, что я закончил, добавило метод к прототипу строки javascript, чтобы мне было проще в коде:
String.prototype.dateFromJSON = function () {
return eval(this.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"));
};
это все еще трудно использовать в смысл кода, потому что вы должны постоянно вызывать dateFromJSON () везде ... что глупо.
На самом деле есть уродливый способ, создать JavaScriptConverter для класса контейнера (Person / Article / Whatever)
Container:
public class Article
{
public int Id { get; set; }
public string Title { get; set; }
public DateTime Date { get; set; }
}
Converter:
public class ArticleJavaScriptConverter : JavaScriptConverter
{
public override IEnumerable<Type> SupportedTypes
{
get { return new Type[] { typeof(Article) }; }
}
public override object Deserialize(
IDictionary<string, object> dictionary,
Type type, JavaScriptSerializer serializer)
{
DateTime date =
DateTime.ParseExact(dictionary["date"] as string, "s", null);
return
new Article()
{
Id = (int)dictionary["id"],
Title = dictionary["title"] as string,
Date = date
};
}
public override IDictionary<string, object> Serialize(
object obj, JavaScriptSerializer serializer)
{
var article = obj as Article;
var result = new Dictionary<string,object>();
if (article != null)
{
this.SerializeInternal(article, result);
}
return result;
}
private void SerializeInternal(
Article article, IDictionary<string, object> result)
{
result.Add("id", article.Id);
result.Add("title", article.Title);
result.Add("date", article.Date.ToString("s"));
}
}
К счастью, когда-либо ...
var serializer = new JavaScriptSerializer();
serializer.RegisterConverters(
new JavaScriptConverter[] {
new ArticleJavaScriptConverter()
});
var expected = new Article()
{
Id = 3,
Title = "test",
Date = DateTime.Now
};
// {"id":3,"title":"test","date":"2009-12-02T05:12:00"}
var json = serializer.Serialize(article);
var actual = serializer.Deserialize<Article>(json);
Assert.AreEqual(expected, actual);