Архив рубрики: Павел

Распознавание автомобильных номеров при помощи opencv и iANPR SDK

ОС: Ubuntu 16.4, под Ubuntu 18.4 пока не удалось заставить работать.

Подготавливаем среду:

sudo apt install build-essential cmake git pkg-config libgtk-3-dev
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
sudo apt install libjpeg-dev libpng-dev libtiff-dev gfortran openexr
sudo apt install python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

Ставим opencv:

wget https://codeload.github.com/opencv/opencv/zip/3.4.5
unzip 3.4.5
cd 3.4.5
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install

Скачиваем iANPR SDK , бесплатную версию (для тестов достаточно) :

wget http://ianpr.org/downloads/iANPRLinux1.6.zip
unzip iANPRLinux1.6.zip

цвцув

 

1С сортировка структуры

Хотя в синтаксисе обьекта структуры в 1С нет функции сортировки, тем не менее иногда просто необходимо иметь остортированную структуру. Поможет следующая функция:

&НаСервере
Функция сортировкаструктуры(ОтчетСтруктура)
			//сортировка структуры
		ТЗ = Новый ТаблицаЗначений;
	    ТЗ.Колонки.Добавить("Ключ");
	    ТЗ.Колонки.Добавить("Значение");
	    Для каждого элемент из ОтчетСтруктура Цикл
	        новСтрока = ТЗ.Добавить();
	        новСтрока.Ключ = Элемент.Ключ;
	        новСтрока.Значение = Элемент.Значение;
	    КонецЦикла;
	    ТЗ.Сортировать("Значение Убыв");
	    ОтчетСтруктура.Очистить();
	    Для каждого строкаТЗ из ТЗ Цикл
	        ОтчетСтруктура.Вставить(строкаТЗ.Ключ,строкаТЗ.Значение);
	    КонецЦикла;		
		//

Возврат ОтчетСтруктура;
КонецФункции

Вывод списка неподдерживаемых элементов данных Zabbix скриптом

Задачу можно решить скриптом на python:

#!/usr/local/bin/python
# coding=utf-8

import socket
import re
from pyzabbix import ZabbixAPI
import time
import requests
requests.packages.urllib3.disable_warnings()

zapi = ZabbixAPI("https://укауц.укаукацук.ru")
zapi.session.verify = False
zapi.login("укацука", "уцкацукацука")


hosts = zapi.host.get();
for hs in hosts:        
    triggers = zapi.item.get(hostids=[hs["hostid"]],);
    for tr in triggers:
        if tr["state"]=="1" and tr["status"]=="0":         
         print hs["hostid"],"|",hs["host"],"|",tr["itemid"].encode('utf8'),"|",tr["name"].encode('utf8');

Именованный массив в 1С

Ну собственно его нет в 1с. Есть некий «аналог», понятие «Структура».

Инициализируется например вот так:

ОтчетСтруктура=Новый Структура;
ОтчетСтруктура.Вставить("НаТранспорте",0);

Причем ключ не должен содержать пробелов и цифр в начале.

К проинициализированной структуре можно обращаться по ключу например так:

ОтчетСтруктура["НаТранспорте"]=ОтчетСтруктура["НаТранспорте"]+1;

Проверка наличия ключа осуществляется так:

если ОтчетСтруктура.Свойство("ключ") тогда
конецесли

Но я в своей практике, немножко по другому поступил, когда мне была не известна заведомо структура:

&НаСервере
Функция ЗаменитьПробелы(_стр)
	стр=СтрЗаменить(_стр, " ", "_");
Возврат стр;
КонецФункции

// цикл 1, заполняем структуру

		ВыборкаДетальныеЗаписи = Результат.Выбрать();
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл				
			если ВыборкаДетальныеЗаписи.Другое<>"" тогда				
				ОтчетСтруктура.Вставить(ЗаменитьПробелы(ВыборкаДетальныеЗаписи.Другое),0);
			конецесли;	
конеццикла;		


// цикл 2, приращиваем счетчики
		ВыборкаДетальныеЗаписи = Результат.Выбрать();			
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
если ВыборкаДетальныеЗаписи.Другое<>"" тогда							
					ОтчетСтруктура[ЗаменитьПробелы(ВыборкаДетальныеЗаписи.Другое)]=ОтчетСтруктура[ЗаменитьПробелы(ВыборкаДетальныеЗаписи.Другое)]+1;
			конецесли;								
			
		конеццикла;

 

WordPress: перебор записей с сортировкой по дате

Ну например это можно реализовать вот так:

		
 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

			$params = array(
				'post_type'         => array('all', 'news'),				
                                'orderby'             => 'date',
				'order'             => 'ACS',
				'paged'             => $paged
			);
		
		$news_var = query_posts($params);

		$new_block = '';
		foreach ($news_var as $new) { setup_postdata($new);