Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: To sne Добавлено: 25.05.04 13:12  

Автор вопроса:  TX | ICQ: 139150044 

расшифруй плиз вот свой код и если есть ошибки - исправь

Private Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

Private Type POINTAPI

x As Long

y As Long

End Type



dim i as long, j as long

dim cArray() as POINTAPI


with picture1

for i=0 to .Width / Screen.TwipsPrePixelX ' ScaleMode в Twip'ы

for j=0 to .Width / Screen.TwipsPrePixelY

if GetPixel(.hdc, i, j) = 0& then ' Работает с пикселами, не твипами (заместо ее можно использовать стандартную VB'шную, но она должна быть медленнее)

redim cArray(LUBound(cArray) + vbNull)

cArray(UBound(cArray)).X = i

cArray(UBound(cArray)).Y = j

end if

next

next

end with


private function LUBound(inArray as POINTAPI) as long

on error resume next

LUBound = &HFFFF

LUBound = UBound(inArray)

end function

и он вообще как сканирует текст- сверху вниз , если смогешь добавь , чтоб сканил слева на право

спасибо - буду благодарен

Ответить

  Ответы Всего ответов: 18  

Номер ответа: 1
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #1
Добавлено: 25.05.04 14:57
>for j=0 to .Width / Screen.TwipsPrePixelY
 - по моему, здесь ошибка. Делится твиповая ширина на количество точек на твип по вертикали.

Ответить

Номер ответа: 2
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 25.05.04 15:38
Ну да тут ошибка, только нужно вот так >for j=0 to .Heigth / Screen.TwipsPrePixelY
<br><br>
А чтобы слева на право, это нужно первый цикл нужно сделать слева-направо, а вложенный сверху-вниз направить... особых затруднений это не вызовет...

Ответить

Номер ответа: 3
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #3
Добавлено: 25.05.04 19:27
ой.... прикольно, теги html не работают...


проверка...

Ответить

Номер ответа: 4
Автор ответа:
 TX



ICQ: 139150044 

Вопросов: 9
Ответов: 44
 Профиль | | #4 Добавлено: 26.05.04 06:14
to sne - напиши как это будет - весь код сверху вниз и слево-направо

Ответить

Номер ответа: 5
Автор ответа:
 TX



ICQ: 139150044 

Вопросов: 9
Ответов: 44
 Профиль | | #5 Добавлено: 26.05.04 06:36
to CyRax - привет а ты не мог бы помочь с прогой - написать ее не смогешь

Ответить

Номер ответа: 6
Автор ответа:
 TX



ICQ: 139150044 

Вопросов: 9
Ответов: 44
 Профиль | | #6 Добавлено: 26.05.04 06:38
to CyRax - мне надо чтобы прога сканировала изображение , с нарисованными на нем четырмя фигурами(каждая фигура - отдельно файл.jpg) (сам фон белый а фигуры черного цвета)и определяла что это за объект , и показывала - допустим - это треугольник
всего четыре фигуры(треугольник, круг, квадрат, линия)

Ответить

Номер ответа: 7
Автор ответа:
 TX



ICQ: 139150044 

Вопросов: 9
Ответов: 44
 Профиль | | #7 Добавлено: 26.05.04 06:44
sharp вот продлогает как - Просто для каждой распознаваемой фигуры ставишь ее рандомом на поле, меряешь сумму черных точек снаружи и белых внутри, меняя координаты ее опорных точек, находишь минимум этой суммы, так для каждой из возможных фигур, у той, у которой сумма будет меньше всех, больше всего шансов быть правильной. - как мне это теперь через код реализовать - не поможете

Ответить

Номер ответа: 8
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #8
Добавлено: 26.05.04 17:37
Ну вот скажем это код слева направо, и снизу вверз :)


Private Sub Form_Load()
    ;Dim i As Long, j As Long
    
    For i = 0 To Me.Width / Screen.TwipsPerPixelX
        For j = Me.Height / Screen.TwipsPerPixelY To 0 Step &HFFFF ' For j = 0 To Me.Height / Screen.TwipsPerPixelY - для сверху вниз
            ;Debug.Print i, j
        Next
    Next
End Sub

Ответить

Номер ответа: 9
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #9
Добавлено: 26.05.04 20:59
Просто так за тебя писать ничего не буду. Разве что за деньги. Да и остальные тоже. Можем только подкинуть идейку другую, а ты уж сам их применяй.

Ответить

Номер ответа: 10
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #10
Добавлено: 26.05.04 21:23
И ещё, про JPG забудь. Там нет чисто белого цвета, за исключением изображений с нулевым сжатием. Да и чёрный он тоже размазывает на несколько оттенков.

Ответить

Номер ответа: 11
Автор ответа:
 TX



ICQ: 139150044 

Вопросов: 9
Ответов: 44
 Профиль | | #11 Добавлено: 27.05.04 06:06
to sne - просто вот этот сам код нужно вставить в вместо того
пошел думать, штоб он с базой данных сравнивал и определял что это за тип
Ну если кто то захочет помочь - я не против:)

Ответить

Номер ответа: 12
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #12
Добавлено: 27.05.04 10:31
да, вот толоько debug.preint замени ;)

Ответить

Номер ответа: 13
Автор ответа:
 TX



ICQ: 139150044 

Вопросов: 9
Ответов: 44
 Профиль | | #13 Добавлено: 28.05.04 09:50
To sne - вообщем плиз выкени весь код - сразу сшей его как один плиз
спасибо

Ответить

Номер ответа: 14
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #14
Добавлено: 28.05.04 10:59
какой весь ? просто цикл замени в старом на новый, и заместо дебага поставь GetPixel... все...

Не надо надеяться на других, надо задать вопрос, и самому пытаться... а не так, что задал, и жду... пока ответят :)))

Ответить

Номер ответа: 15
Автор ответа:
 TX



ICQ: 139150044 

Вопросов: 9
Ответов: 44
 Профиль | | #15 Добавлено: 28.05.04 11:27
Private Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As
Long) As Long
Private Type POINTAPI

x As Long
y As Long
 End Type

Private Sub Form_Load()

Dim i As Long, j As Long
dim cArray() as POINTAPI

with picture1
For i = 0 To Me.Width / Screen.TwipsPerPixelX
        For j = Me.Height / Screen.TwipsPerPixelY To 0 Step &HFFFF ' For j = 0 To Me.Height /
Screen.TwipsPerPixelY
   ;Debug.Print i, j

redim cArray(LUBound(cArray) + vbNull)
cArray(UBound(cArray)).X = i
cArray(UBound(cArray)).Y = j
end if
next
next
end with

private function LUBound(inArray as POINTAPI) as long
on error resume next
LUBound = &HFFFF
LUBound = UBound(inArray)
end function

End Sub


Private Sub Form_Load()
    ;Dim i As Long, j As Long
     
    For i = 0 To Me.Width / Screen.TwipsPerPixelX
        For j = Me.Height / Screen.TwipsPerPixelY To 0 Step &HFFFF ' For j = 0 To Me.Height /
Screen.TwipsPerPixelY - для сверху вниз
            ;Debug.Print i, j
        Next
    Next
End Sub

результат должен быть такой?

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам