January 12th, 2021

QuatCore

Супрематический алгоритм обнаружения на ассемблере

Пора подправить алгоритм обнаружения, написанный на ассемблере, в соответствии с новым алгоритмом, который даёт корректные результаты.

И по ходу дела надо будет сообразить, нужна ли нам новая команда видеообработчику AUP (Acquire UPdate), или достаточно будет переписать программу. Начнём с самого начала файла ProcessFrame.asm:

ProcessFrame proc			
			j	1		;отныне и во веки веков!	
						;ждём кадрового синхроимпульса
			ACQ	VSync		;"застревает" до тех пор, пока кадровый импульс не придёт
						;пропускаем "пустые строки" вверху изображения (нужно только для аналоговой камеры, в цифровой такой фигни нет вроде бы...)
			k	TopRows		;TopRows должны быть определены в основном файле
			Z	D1												
	@@topRows:	ACQ	HSync
			kLOOP	@@topRows
						;теперь k=0, пусть так и остаётся, наши [X+k], [Y+k], [Z+k] будут означать [X],[Y],[Z], очень надо для списков
						
				;теперь начинаются информативные строки изображения, сейчас их 720, позже может стать 1024. 
			C	[Z+k]		;ожидаемый диаметр точки, всё-таки штука весьма нужная, лучше держать локальной перем.											
			[SP+2j]	0		;в [SP+2] храним номер строки. 
						
			JMP	@@FinalRange	;чтобы СНАЧАЛА отправить запрос, а потом уже смотреть результат, так почему-то удобнее					
						;можем заменить на JNO, переполнения здесь случаться не должно


Как ни странно, здесь нас ждёт УПРОЩЕНИЕ - выкидываем аж две строки!

Collapse )

Продолжение следует... Нам предстоит написать слияние с пятном слева от себя (либо пятно с точкой, либо два пятна между собой), а также процедуру TaskPending (для случая без AUP), а ещё добавить вариант слияния "снизу", ну и весь код целиком "причесать" и отладить... Чего-то тяжело идёт после каникул.