Claims
- 1. A computer-implemented method for configuring an image acquisition device to perform an image processing function, the method comprising:
creating a graphical program on a computer system, wherein the graphical program implements the image processing function, and wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program; deploying the graphical program on the image acquisition device, wherein the image acquisition device is coupled to or comprised in the computer system; the image acquisition device acquiring an image of an object; and the image acquisition device executing to perform the image processing function on the image.
- 2. The method of claim 1, wherein the image acquisition device includes a processor and a memory;
wherein said deploying the graphical program on the image acquisition device comprises transferring the graphical program to the memory on the image acquisition device; and wherein the image acquisition device executing to perform the image processing function on the image comprises the processor in the image acquisition device executing the graphical program from the memory.
- 3. The method of claim 1, wherein the image acquisition device includes a processor and a memory;
wherein said deploying the graphical program on the image acquisition device comprises:
generating an executable program based on the graphical program, wherein the executable program implements functionality of the graphical program; and transferring the executable program to the memory on the image acquisition device; and wherein the image acquisition device executing to perform the image processing function on the image comprises the processor in the image acquisition device executing the executable program from the memory.
- 4. The method of claim 1, wherein the image acquisition device includes a programmable hardware element;
wherein said deploying the graphical program on the image acquisition device comprises:
generating a hardware description based on the graphical program, wherein the hardware description describes a hardware implementation of the graphical program; and configuring the programmable hardware element in the image acquisition device utilizing the hardware description, wherein after said configuring the programmable hardware element implements a hardware implementation of the graphical program; and wherein the image acquisition device executing to perform the image processing function on the image comprises the programmable hardware element in the image acquisition device executing to perform the image processing function on the image.
- 5. The method of claim 1, wherein the image acquisition device includes a processor and a memory and a programmable hardware element;
wherein said deploying the graphical program on the image acquisition device comprises:
transferring a first portion of the graphical program to the memory on the image acquisition device; generating a hardware description based on a second portion of the graphical program, wherein the hardware description describes a hardware implementation of the second portion of the graphical program; and configuring the programmable hardware element in the image acquisition device utilizing the hardware description, wherein after said configuring the programmable hardware element implements a hardware implementation of the second portion of the graphical program; and wherein the image acquisition device executing to perform the image processing function on the image comprises the processor in the image acquisition device executing the first portion of the graphical program from the memory and the programmable hardware element executing the second portion of the graphical program.
- 6. The method of claim 5,
wherein the first portion of the graphical program comprises an image processing portion, and wherein the second portion of the graphical program comprises a control portion.
- 7. The method of claim 5,
wherein the first portion of the graphical program comprises a control portion, and wherein the second portion of the graphical program comprises an image processing portion.
- 8. The method of claim 1, wherein the image acquisition device includes a processor and a memory and a programmable hardware element;
wherein said deploying the graphical program on the image acquisition device comprises:
generating an executable program based on a first portion of the graphical program, wherein the executable program implements functionality of the first portion of the graphical program; and transferring the executable program to the memory on the image acquisition device; generating a hardware description based on a second portion of the graphical program, wherein the hardware description describes a hardware implementation of the graphical program; and configuring the programmable hardware element in the image acquisition device utilizing the hardware description, wherein after said configuring the programmable hardware element implements a hardware implementation of the second portion of the graphical program; and wherein the image acquisition device executing to perform the image processing function on the image comprises the processor in the image acquisition device executing the executable program from the memory and the programmable hardware element executing the second portion of the graphical program.
- 9. The method of claim 8,
wherein the first portion of the graphical program comprises an image processing portion, and wherein the second portion of the graphical program comprises a control portion.
- 10. The method of claim 8,
wherein the first portion of the graphical program comprises a control portion, and wherein the second portion of the graphical program comprises an image processing portion.
- 11. The method of claim 1,
wherein the image acquisition device includes a first processor, a second processor, and at least one memory; and wherein the image acquisition device executing to perform the image processing function on the image comprises the first processor in the image acquisition device executing a first portion of the graphical program from the at least one memory and the second processor in the image acquisition device executing a second portion of the graphical program from the at least one memory.
- 12. The method of claim 11,
wherein the first portion of the graphical program comprises an image processing portion, and wherein the second portion of the graphical program comprises a control portion.
- 13. The method of claim 11,
wherein the first portion of the graphical program comprises a first portion of the image processing function, and wherein the second portion of the graphical program comprises a second portion of the image processing function.
- 14. The method of claim 1, further comprising:
the image acquisition device receiving an image present signal; wherein the image acquisition device acquires the image of the object in response to receiving the image present signal.
- 15. The method of claim 1, further comprising:
the image acquisition device performing a control operation after said executing to perform the image processing function on the image.
- 16. The method of claim 1, further comprising:
the image acquisition device generating a pass/fail indication after said executing to perform the image processing function on the image.
- 17. The method of claim 1,
wherein the image acquisition device is coupled to a camera; and wherein the image acquisition device acquiring an image of an object comprises the camera acquiring the image of the object and the image acquisition device receiving and storing the image.
- 18. The method of claim 1,
wherein said executing further comprises:
the image acquisition device determining characteristics of the image after performing the image processing function; and the image acquisition device performing an operation based on the determined characteristics of the image.
- 19. The method of claim 1,
wherein the image acquisition device comprises a smart camera.
- 20. The method of claim 1,
wherein the image acquisition device comprises an image acquisition board coupled to or comprised in a computer system.
- 21. The method of claim 1,
wherein the graphical program includes a user interface portion; the method further comprising:
presenting the user interface portion on a display during the image acquisition device executing to perform the image processing function on the image.
- 22. The method of claim 21,
wherein the user interface portion operates as a front panel for the image acquisition device.
- 23. The method of claim 21, further comprising:
receiving user input to the user interface portion on the display to control the image acquisition device during the programmable hardware element in the image acquisition device executing to perform the image processing function on the image.
- 24. The method of claim 21, further comprising:
compiling the user interface portion into executable code for execution by a processor and storing the executable code in a memory; and the processor executing the executable code from the memory to present the user interface portion on the display.
- 25. The method of claim 24,
wherein the image acquisition device includes the processor and the memory; and wherein the processor in the image acquisition device executes the executable code from the memory to present the user interface portion on the display during the image acquisition device executing to perform the image processing function on the image.
- 26. The method of claim 24,
wherein the computer system includes the processor and the memory; and wherein the computer system executes the executable code from the memory to present the user interface portion on the display during the image acquisition device executing to perform the image processing function on the image.
- 27. The method of claim 1, wherein said creating the graphical program includes:
arranging on a display of the computer system a plurality of nodes comprising the graphical program and interconnecting the plurality of nodes; creating and storing data structures which represent the graphical program in response to said arranging and said interconnecting.
- 28. The method of claim 1, wherein the graphical program comprises a data flow diagram.
- 29. The method of claim 1, wherein the graphical program comprises one or more of data flow, control flow and execution flow constructs.
- 30. The method of claim 1,
wherein said creating the graphical program is performed on the computer system; wherein the image acquisition device is coupled to the computer system over a network; and wherein said deploying the graphical program comprises the computer system deploying the graphical program over the network to the image acquisition device.
- 31. An image processing system, comprising:
a computer system comprising a processor, memory and a display;
wherein the memory stores a graphical program, wherein the graphical program implements an image processing function, wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program; and wherein the memory also stores a software program which is executable to deploy the graphical program on the image acquisition device; an image acquisition device coupled to the computer system, wherein the image acquisition device includes:
an input for acquiring an image; and at least one functional unit that is configurable based on the graphical program for performing the image processing function on the image.
- 32. The image processing system of claim 31,
wherein the at least one functional unit comprises a second processor and a second memory; wherein the software program is executable by the processor in the computer system to transfer the graphical program to the second memory on the image acquisition device; and wherein the second processor in the image acquisition device is operable to execute the graphical program from the second memory.
- 33. The image processing system of claim 31,
wherein the at least one functional unit comprises a second processor and a second memory; wherein the software program is executable by the processor in the computer system to 1) generate an executable program based on the graphical program, wherein the executable program implements functionality of the graphical program, and 2) transfer the executable program to the second memory on the image acquisition device; and wherein the second processor in the image acquisition device is operable to execute the executable program from the second memory.
- 34. The image processing system of claim 31,
wherein the at least one functional unit comprises a programmable hardware element; and wherein the software program is executable by the processor in the computer system to generate a hardware description based on the graphical program and configure the programmable hardware element based on the hardware description, wherein after being configured the programmable hardware element implements a hardware implementation of the graphical program, wherein the programmable hardware element in the image acquisition device is executable to perform an image processing function on an acquired image.
- 35. The image processing system of claim 31,
wherein the at least one functional unit comprises a second processor, a second memory, and a programmable hardware element; wherein the software program is executable by the processor in the computer system to:
transfer a first portion of the graphical program to the second memory on the image acquisition device; generate a hardware description based on a second portion of the graphical program, wherein the hardware description describes a hardware implementation of the second portion of the graphical program; and configure the programmable hardware element in the image acquisition device utilizing the hardware description, wherein after said configuring the programmable hardware element implements a hardware implementation of the second portion of the graphical program; wherein the second processor in the image acquisition device is operable to execute the first portion of the graphical program from the second memory; and wherein the programmable hardware element in the image acquisition device is operable to implement the second portion of the graphical program.
- 36. The image processing system of claim 35,
wherein the first portion of the graphical program comprises an image processing portion, and wherein the second portion of the graphical program comprises a control portion.
- 37. The image processing system of claim 35,
wherein the first portion of the graphical program comprises a control portion, and wherein the second portion of the graphical program comprises an image processing portion.
- 38. The image processing system of claim 31,
wherein the at least one functional unit comprises a second processor, a second memory, and a programmable hardware element; wherein the software program is executable by the processor in the computer system to:
generate an executable program based on a first portion of the graphical program, wherein the executable program implements functionality of the first portion of the graphical program; transfer the executable program to the second memory on the image acquisition device; generate a hardware description based on a second portion of the graphical program, wherein the hardware description describes a hardware implementation of the second portion of the graphical program; and configure the programmable hardware element in the image acquisition device utilizing the hardware description, wherein after said configuring the programmable hardware element implements a hardware implementation of the second portion of the graphical program; wherein the second processor in the image acquisition device is operable to execute the executable program from the second memory to implement the first portion of the graphical program; and wherein the programmable hardware element in the image acquisition device is operable to implement the second portion of the graphical program.
- 39. The image processing system of claim 38,
wherein the first portion of the graphical program comprises an image processing portion, and wherein the second portion of the graphical program comprises a control portion.
- 40. The image processing system of claim 38,
wherein the first portion of the graphical program comprises a control portion, and wherein the second portion of the graphical program comprises an image processing portion.
- 41. The image processing system of claim 31,
wherein the at least one functional unit comprises a second processor, a third processor, and at least one memory; and wherein the second processor in the image acquisition device is operable to execute a first portion of the graphical program from the at least one memory and the third processor in the image acquisition device is operable to execute a second portion of the graphical program from the at least one memory.
- 42. The image processing system of claim 41,
wherein the first portion of the graphical program comprises an image processing portion, and wherein the second portion of the graphical program comprises a control portion.
- 43. The image processing system of claim 41,
wherein the first portion of the graphical program comprises a first portion of the image processing function, and wherein the second portion of the graphical program comprises a second portion of the image processing function.
- 44. The image processing system of claim 31,
wherein the image acquisition device is operable to receive an image present signal; and wherein the image acquisition device is operable to acquire the image of the object in response to receiving the image present signal.
- 45. The image processing system of claim 31, further comprising:
wherein the image acquisition device is operable to perform a control operation after executing to perform the image processing function on the image.
- 46. The image processing system of claim 31, further comprising:
wherein the image acquisition device is operable to generate a pass/fail indication after executing to perform the image processing function on the image.
- 47. The image processing system of claim 31,
wherein the image acquisition device is coupled to a camera; and wherein the image acquisition device is operable to receive and store an image acquired from the camera.
- 48. The image processing system of claim 31,
wherein the image acquisition device is operable to determine characteristics of the image after performing the image processing function; and wherein the image acquisition device is operable to perform an operation based on the determined characteristics of the image.
- 49. The image processing system of claim 31,
wherein the image acquisition device comprises a smart camera.
- 50. The image processing system of claim 31,
wherein the image acquisition device comprises an image acquisition board coupled to or comprised in a computer system.
- 51. The image processing system of claim 31,
wherein the graphical program includes a user interface portion; and wherein the computer system is operable to present the user interface portion on a display when the at least one functional unit in the image acquisition device executes to perform the image processing function on the image.
- 52. The image processing system of claim 51,
wherein the user interface portion operates as a front panel for the image acquisition device.
- 53. The image processing system of claim 51,
wherein the computer system further comprises a user input device for receiving user input to the user interface portion on the display; and wherein the user input is operable to control the image acquisition device when the at least one functional unit in the image acquisition device executes to perform the image processing function on the image.
- 54. The image processing system of claim 51,
wherein the user interface portion is operable to be compiled into executable code for execution by the processor and stored in the memory; and wherein the processor is operable to execute the executable code from the memory to present the user interface portion on the display.
- 55. The image processing system of claim 31,
wherein the memory of the computer system stores a graphical program development program for creating the graphical program; wherein the graphical program development program is executable to:
arrange on the screen a plurality of nodes comprising the graphical program and interconnect the plurality of nodes in response to user input; and create and store data structures which represent the graphical program in response to said user input.
- 56. The image processing system of claim 31, wherein the graphical program comprises one or more of data flow, control flow and execution flow constructs.
- 57. The image processing system of claim 31,
wherein the image acquisition device is coupled to the computer system over a network; and wherein the computer system is operable to deploy the graphical program over the network to the image acquisition device.
- 58. An image acquisition device, comprising:
an input for receiving an image of an object; a memory coupled to the input for storing data corresponding to the image of the object, wherein the memory also stores a graphical program, wherein the graphical program implements an image processing function; and a processor coupled to the memory, wherein the processor is operable to execute the graphical program to perform the image processing function on an acquired image.
- 59. The image acquisition device of claim 58,
wherein the memory further stores a graphical program execution engine; and wherein the processor is operable to execute the graphical program execution engine in executing the graphical program.
- 60. The image acquisition device of claim 58,
wherein the memory further stores a real time operating system; and wherein the processor is operable to execute the real time operating system in executing the graphical program.
- 61. The image acquisition device of claim 58,
wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program.
- 62. The image acquisition device of claim 58,
wherein the graphical program is created by assembling a plurality of interconnected nodes which visually indicate functionality of the graphical program in response to user input.
- 63. The image acquisition device of claim 58, wherein the image acquisition device further comprises:
analog to digital conversion logic coupled to the input and to the programmable hardware element for performing analog to digital conversion logic on an acquired analog image to produce a digital image.
- 64. The image acquisition device of claim 58,
wherein the image acquisition device further includes timer/counter logic; and wherein the timer/counter logic performs one of timing/counting operations while the programmable hardware element in the image acquisition device executes to perform the image processing function on the image.
- 65. An image acquisition device, comprising:
an input for receiving an image of an object; a memory coupled to the input for storing data corresponding to the image of the object, wherein the memory also stores a software program, wherein the software program implements an image processing function, wherein the software program is created based on a graphical program; and a processor coupled to the memory, wherein the processor is operable to execute the software program to perform the image processing function on an acquired image.
- 66. The image acquisition device of claim 65,
wherein the memory further stores a real time operating system; and wherein the processor is operable to execute the real time operating system in executing the graphical program.
- 67. The image acquisition device of claim 65,
wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program.
- 68. The image acquisition device of claim 65,
wherein the graphical program is created by assembling a plurality of interconnected nodes which visually indicate functionality of the graphical program in response to user input.
- 69. The image acquisition device of claim 65, wherein the image acquisition device further comprises:
analog to digital conversion logic coupled to the input and to the programmable hardware element for performing analog to digital conversion logic on an acquired analog image to produce a digital image.
- 70. The image acquisition device of claim 65,
wherein the image acquisition device further includes timer/counter logic; and wherein the timer/counter logic performs one of timing/counting operations while the programmable hardware element in the image acquisition device executes to perform the image processing function on the image.
- 71. An image acquisition device, comprising:
an input for receiving an image of an object; a memory coupled to the input for storing data corresponding to the image of the object; and a programmable hardware element coupled to the memory that is configured to implement an image processing function, wherein the programmable hardware element in the image acquisition device is configured utilizing a hardware description generated from a graphical program, wherein the programmable hardware element implements a hardware implementation of the graphical program, wherein the programmable hardware element in the image acquisition device is operable to perform an image processing function on the image.
- 72. The image acquisition device of claim 71,
wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program.
- 73. The image acquisition device of claim 71,
wherein the graphical program is created by assembling a plurality of interconnected nodes which visually indicate functionality of the graphical program in response to user input.
- 74. The image acquisition device of claim 71, wherein the image acquisition device further comprises:
analog to digital conversion logic coupled to the input and to the programmable hardware element for performing analog to digital conversion logic on an acquired analog image to produce a digital image.
- 75. The image acquisition device of claim 71,
wherein the image acquisition device further includes timer/counter logic; and wherein the timer/counter logic performs one of timing/counting operations while the programmable hardware element in the image acquisition device executes to perform the image processing function on the image.
- 76. The image acquisition device of claim 71, wherein the programmable hardware element comprises a field programmable gate array (FPGA).
- 77. The image acquisition device of claim 71, wherein the image acquisition device further includes a non-volatile memory coupled to the programmable hardware element;
wherein the non-volatile memory is operable to store the hardware description; and wherein the non-volatile memory is operable to transfer the hardware description to the programmable hardware element to configure the programmable hardware element.
- 78. A method for configuring an image acquisition device to perform an image processing function, the method comprising:
coupling the image acquisition device to a computer system, wherein the image acquisition device comprises at least one functional unit, wherein the computer system stores a graphical program, wherein the graphical program implements the image processing function; and deploying the graphical program onto the functional unit in the image acquisition device to configure the functional unit; wherein after said deploying the functional unit is operable to implement the graphical program.
- 79. The method of claim 78, further comprising:
disconnecting the image acquisition device from the computer system after said deploying.
- 80. The method of claim 78, further comprising:
creating the graphical program prior to said deploying, wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program.
- 81. The method of claim 78,
wherein the functional unit is a processor and memory; wherein said deploying the graphical program onto the functional unit comprises transferring the graphical program to the memory of the functional unit; and wherein the processor in the image acquisition device is operable to execute the graphical program from the memory.
- 82. The method of claim 78,
wherein the functional unit is a processor and memory; wherein said deploying the graphical program onto the functional unit comprises:
generating an executable program based on the graphical program, wherein the executable program implements functionality of the graphical program; and transferring the executable program to the memory on the image acquisition device; and wherein the processor in the image acquisition device is operable to execute the executable program from the memory.
- 83. The method of claim 78,
wherein the functional unit is a programmable hardware element; wherein said deploying the graphical program onto the functional unit comprises:
downloading a hardware configuration onto the programmable hardware element in the image acquisition device to configure the programmable hardware element, wherein the hardware configuration corresponds to a hardware implementation of the graphical program; wherein after said downloading the programmable hardware element implements a hardware implementation of the graphical program.
- 84. A computer-implemented method for configuring a smart camera to perform an image processing function, the method comprising:
creating a graphical program on a computer system, wherein the graphical program implements the image processing function, wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program; deploying the graphical program on the smart camera, wherein the smart camera is coupled to the computer system; the smart camera acquiring an image of an object; and the smart camera executing to perform the image processing function on the image.
- 85. The method of claim 84, wherein the smart camera includes a processor and a memory;
wherein said deploying the graphical program on the smart camera comprises transferring the graphical program to the memory on the smart camera; and wherein the smart camera executing to perform the image processing function on the image comprises the processor in the smart camera executing the graphical program from the memory.
- 86. The method of claim 84, wherein the smart camera includes a processor and a memory;
wherein said deploying the graphical program on the smart camera comprises:
generating an executable program based on the graphical program, wherein the executable program implements functionality of the graphical program; and transferring the executable program to the memory on the smart camera; and wherein the smart camera executing to perform the image processing function on the image comprises the processor in the smart camera executing the executable program from the memory.
- 87. The method of claim 84, wherein the smart camera includes a programmable hardware element;
wherein said deploying the graphical program on the smart camera comprises:
generating a hardware description based on the graphical program, wherein the hardware description describes a hardware implementation of the graphical program; and configuring the programmable hardware element in the smart camera utilizing the hardware description, wherein after said configuring the programmable hardware element implements a hardware implementation of the graphical program; and wherein the smart camera executing to perform the image processing function on the image comprises the programmable hardware element in the smart camera executing to perform the image processing function on the image.
- 88. The method of claim 84, wherein the smart camera includes a processor and a memory and a programmable hardware element;
wherein said deploying the graphical program on the smart camera comprises:
transferring a first portion of the graphical program to the memory on the smart camera; generating a hardware description based on a second portion of the graphical program, wherein the hardware description describes a hardware implementation of the second portion of the graphical program; and configuring the programmable hardware element in the smart camera utilizing the hardware description, wherein after said configuring the programmable hardware element implements a hardware implementation of the second portion of the graphical program; and wherein the smart camera executing to perform the image processing function on the image comprises the processor in the smart camera executing the first portion of the graphical program from the memory and the programmable hardware element executing the second portion of the graphical program.
- 89. The method of claim 88,
wherein the first portion of the graphical program comprises an image processing portion, and wherein the second portion of the graphical program comprises a control portion.
- 90. The method of claim 88,
wherein the first portion of the graphical program comprises a control portion, and wherein the second portion of the graphical program comprises an image processing portion.
- 91. The method of claim 84, wherein the smart camera includes a processor and a memory and a programmable hardware element;
wherein said deploying the graphical program on the smart camera comprises:
generating an executable program based on a first portion of the graphical program, wherein the executable program implements functionality of the first portion of the graphical program; and transferring the executable program to the memory on the smart camera; generating a hardware description based on a second portion of the graphical program, wherein the hardware description describes a hardware implementation of the second portion of the graphical program; and configuring the programmable hardware element in the smart camera utilizing the hardware description, wherein after said configuring the programmable hardware element implements a hardware implementation of the second portion of the graphical program; and wherein the smart camera executing to perform the image processing function on the image comprises the processor in the smart camera executing the executable program from the memory and the programmable hardware element executing the second portion of the graphical program.
- 92. The method of claim 91,
wherein the first portion of the graphical program comprises an image processing portion, and wherein the second portion of the graphical program comprises a control portion.
- 93. The method of claim 91,
wherein the first portion of the graphical program comprises a control portion, and wherein the second portion of the graphical program comprises an image processing portion.
- 94. The method of claim 84,
wherein the smart camera includes a first processor, a second processor, and at least one memory; and wherein the smart camera executing to perform the image processing function on the image comprises the first processor in the smart camera executing a first portion of the graphical program from the at least one memory and the second processor in the smart camera executing a second portion of the graphical program from the at least one memory.
- 95. The method of claim 94,
wherein the first portion of the graphical program comprises an image processing portion, and wherein the second portion of the graphical program comprises a control portion.
- 96. The method of claim 94,
wherein the first portion of the graphical program comprises a first portion of the image processing function, and wherein the second portion of the graphical program comprises a second portion of the image processing function.
- 97. The method of claim 84, further comprising:
the smart camera receiving an image present signal; wherein the smart camera acquires the image of the object in response to receiving the image present signal.
- 98. The method of claim 84, further comprising:
the smart camera performing a control operation after said executing to perform the image processing function on the image.
- 99. The method of claim 84, further comprising:
the smart camera generating a pass/fail indication after said executing to perform the image processing function on the image.
- 100. The method of claim 84,
wherein the smart camera acquiring an image of an object comprises the smart camera acquiring the image of the object and storing the image in a memory.
- 101. The method of claim 84,
wherein said executing further comprises:
the smart camera determining characteristics of the image after performing the image processing function; and the smart camera performing an operation based on the determined characteristics of the image.
- 102. The method of claim 84,
wherein the graphical program includes a user interface portion; the method further comprising:
presenting the user interface portion on a display during the smart camera executing to perform the image processing function on the image.
- 103. The method of claim 102,
wherein the user interface portion operates as a front panel for the smart camera.
- 104. The method of claim 102, further comprising:
receiving user input to the user interface portion on the display to control the smart camera during the programmable hardware element in the smart camera executing to perform the image processing function on the image.
- 105. The method of claim 102, further comprising:
compiling the user interface portion into executable code for execution by a processor and storing the executable code in a memory; and the processor executing the executable code from the memory to present the user interface portion on the display.
- 106. The method of claim 105,
wherein the smart camera includes the processor and the memory; and wherein the processor in the smart camera executes the executable code from the memory to present the user interface portion on the display during the smart camera executing to perform the image processing function on the image.
- 107. The method of claim 105,
wherein the computer system includes the processor and the memory; and wherein the computer system executes the executable code from the memory to present the user interface portion on the display during the smart camera executing to perform the image processing function on the image.
- 108. The method of claim 84, wherein said creating the graphical program includes:
arranging on a display of the computer system a plurality of nodes comprising the graphical program and interconnecting the plurality of nodes; and creating and storing data structures which represent the graphical program in response to said arranging and said interconnecting.
- 109. The method of claim 84, wherein the graphical program comprises a data flow diagram.
- 110. The method of claim 84, wherein the graphical program comprises one or more of data flow, control flow and execution flow constructs.
- 111. The method of claim 84,
wherein said creating the graphical program is performed on the computer system; wherein the smart camera is coupled to the computer system over a network; and wherein said deploying the graphical program comprises the computer system deploying the graphical program over the network to the smart camera.
- 112. A image processing system, comprising:
a computer system comprising a processor, memory and a display;
wherein the memory stores a graphical program, wherein the graphical program implements an image processing function, and wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program; and wherein the memory also stores a software program which is executable to deploy the graphical program on the smart camera; and a smart camera coupled to the computer system, wherein the smart camera includes:
a camera for acquiring an image; and at least one functional unit coupled to the camera that is configurable based on the graphical program for performing the image processing function on the image.
- 113. The image processing system of claim 112,
wherein the at least one functional unit comprises a second processor and a second memory; wherein the software program is executable by the processor in the computer system to transfer the graphical program to the second memory on the smart camera; and wherein the second processor in the smart camera is operable to execute the graphical program from the second memory.
- 114. The image processing system of claim 112,
wherein the at least one functional unit comprises a second processor and a second memory; wherein the software program is executable by the processor in the computer system to 1) generate an executable program based on the graphical program, wherein the executable program implements functionality of the graphical program, and 2) transfer the graphical program to the second memory on the smart camera; and wherein the second processor in the smart camera is operable to execute the executable program from the second memory.
- 115. The image processing system of claim 112,
wherein the at least one functional unit comprises a programmable hardware element; and wherein the software program is executable by the processor in the computer system to generate a hardware description based on the graphical program and configure the programmable hardware element based on the hardware description, wherein after being configured the programmable hardware element implements a hardware implementation of the graphical program, and wherein the programmable hardware element in the smart camera is executable to perform an image processing function on an acquired image.
- 116. The image processing system of claim 112,
wherein the at least one functional unit comprises a second processor, a second memory, and a programmable hardware element; wherein the software program is executable by the processor in the computer system to:
transfer a first portion of the graphical program to the second memory on the smart camera; generate a hardware description based on a second portion of the graphical program, wherein the hardware description describes a hardware implementation of the second portion of the graphical program; and configure the programmable hardware element in the smart camera utilizing the hardware description, wherein after said configuring the programmable hardware element implements a hardware implementation of the second portion of the graphical program; wherein the second processor in the smart camera is operable to execute the first portion of the graphical program from the second memory; and wherein the programmable hardware element in the smart camera is operable to implement the second portion of the graphical program.
- 117. The image processing system of claim 116,
wherein the first portion of the graphical program comprises an image processing portion, and wherein the second portion of the graphical program comprises a control portion.
- 118. The image processing system of claim 116,
wherein the first portion of the graphical program comprises a control portion, and wherein the second portion of the graphical program comprises an image processing portion.
- 119. The image processing system of claim 112,
wherein the at least one functional unit comprises a second processor, a second memory, and a programmable hardware element; wherein the software program is executable by the processor in the computer system to:
generate an executable program based on a first portion of the graphical program, wherein the executable program implements functionality of the first portion of the graphical program; transfer the executable program to the second memory on the smart camera; generate a hardware description based on a second portion of the graphical program, wherein the hardware description describes a hardware implementation of the second portion of the graphical program; and configure the programmable hardware element in the smart camera utilizing the hardware description, wherein after said configuring the programmable hardware element implements a hardware implementation of the second portion of the graphical program; wherein the second processor in the smart camera is operable to execute the executable program from the second memory; and wherein the programmable hardware element in the smart camera is operable to implement the second portion of the graphical program.
- 120. The image processing system of claim 119,
wherein the first portion of the graphical program comprises an image processing portion, and wherein the second portion of the graphical program comprises a control portion.
- 121. The image processing system of claim 119,
wherein the first portion of the graphical program comprises a control portion, and wherein the second portion of the graphical program comprises an image processing portion.
- 122. The image processing system of claim 112,
wherein the at least one functional unit comprises a second processor, a third processor, and at least one memory; and wherein the second processor in the smart camera is operable to execute a first portion of the graphical program from the at least one memory and the third processor in the smart camera is operable to execute a second portion of the graphical program from the at least one memory.
- 123. The image processing system of claim 122,
wherein the first portion of the graphical program comprises an image processing portion, and wherein the second portion of the graphical program comprises a control portion.
- 124. The image processing system of claim 122,
wherein the first portion of the graphical program comprises a first portion of the image processing function, and wherein the second portion of the graphical program comprises a second portion of the image processing function.
- 125. The image processing system of claim 112,
wherein the smart camera is operable to receive an image present signal; and wherein the smart camera is operable to acquire the image of the object in response to receiving the image present signal.
- 126. The image processing system of claim 112,
wherein the smart camera is operable to perform a control operation after executing to perform the image processing function on the image.
- 127. The image processing system of claim 112,
wherein the smart camera is operable to generate a pass/fail indication after executing to perform the image processing function on the image.
- 128. The image processing system of claim 112,
wherein the smart camera includes a memory for storing an acquired image.
- 129. The image processing system of claim 112,
wherein the smart camera is operable to determine characteristics of the image after performing the image processing function; and wherein the smart camera is operable to perform an operation based on the determined characteristics of the image.
- 130. The image processing system of claim 112,
wherein the graphical program includes a user interface portion; and wherein the computer system is operable to present the user interface portion on a display when the at least one functional unit in the smart camera executes to perform the image processing function on the image.
- 131. The image processing system of claim 130,
wherein the user interface portion operates as a front panel for the smart camera.
- 132. The image processing system of claim 130,
wherein the computer system further comprises a user input device for receiving user input to the user interface portion on the display; and wherein the user input is operable to control the smart camera when the at least one functional unit in the smart camera executes to perform the image processing function on the image.
- 133. The image processing system of claim 130,
wherein the user interface portion is operable to be compiled into executable code for execution by the processor and stored in the memory; and wherein the processor is operable to execute the executable code from the memory to present the user interface portion on the display.
- 134. The image processing system of claim 112,
wherein the memory of the computer system stores a graphical program development program for creating the graphical program; and wherein the graphical program development program is executable to:
arrange on the screen a plurality of nodes comprising the graphical program and interconnect the plurality of nodes in response to user input; and create and store data structures which represent the graphical program in response to said user input.
- 135. The image processing system of claim 112, wherein the graphical program comprises one or more of data flow, control flow and execution flow constructs.
- 136. The image processing system of claim 112,
wherein the smart camera is coupled to the computer system over a network; and wherein the computer system is operable to deploy the graphical program over the network to the smart camera.
- 137. A smart camera, comprising:
a camera for acquiring an image of an object; a memory coupled to the camera for storing data corresponding to the image of the object, wherein the memory also stores a graphical program, wherein the graphical program implements an image processing function; and a processor coupled to the memory, wherein the processor is operable to execute the graphical program to perform the image processing function on an acquired image.
- 138. The smart camera of claim 137,
wherein the memory further stores a graphical program execution engine; and wherein the processor is operable to execute the graphical program execution engine in executing the graphical program.
- 139. The smart camera of claim 137,
wherein the memory further stores a real time operating system; and wherein the processor is operable to execute the real time operating system in executing the graphical program.
- 140. The smart camera of claim 137,
wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program.
- 141. The smart camera of claim 137,
wherein the graphical program is created by assembling a plurality of interconnected nodes which visually indicate functionality of the graphical program in response to user input.
- 142. The smart camera of claim 137, wherein the smart camera further comprises:
analog to digital conversion logic coupled to the input and to the programmable hardware element for performing analog to digital conversion logic on an acquired analog image to produce a digital image.
- 143. The smart camera of claim 137,
wherein the smart camera further includes timer/counter logic; and wherein the timer/counter logic performs one of timing/counting operations while the programmable hardware element in the smart camera executes to perform the image processing function on the image.
- 144. A smart camera, comprising:
a camera for acquiring an image of an object; a memory coupled to the camera for storing data corresponding to the image of the object, wherein the memory also stores a software program, wherein the software program implements an image processing function, and wherein the software program is created based on a graphical program; and a processor coupled to the memory, wherein the processor is operable to execute the software program to perform the image processing function on an acquired image.
- 145. The smart camera of claim 144,
wherein the memory further stores a real time operating system; and wherein the processor is operable to execute the real time operating system in executing the graphical program.
- 146. The smart camera of claim 144,
wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program.
- 147. The smart camera of claim 144,
wherein the graphical program is created by assembling a plurality of interconnected nodes which visually indicate functionality of the graphical program in response to user input.
- 148. The smart camera of claim 144, wherein the smart camera further comprises:
analog to digital conversion logic coupled to the input and to the programmable hardware element for performing analog to digital conversion logic on an acquired analog image to produce a digital image.
- 149. The smart camera of claim 144,
wherein the smart camera further includes timer/counter logic; and wherein the timer/counter logic performs one of timing/counting operations while the programmable hardware element in the smart camera executes to perform the image processing function on the image.
- 150. A smart camera, comprising:
a camera for receiving an image of an object; a memory coupled to the camera for storing data corresponding to the image of the object; and a programmable hardware element coupled to the memory that is configured to implement an image processing function, wherein the programmable hardware element in the smart camera is configured utilizing a hardware description generated from a graphical program, wherein the programmable hardware element implements a hardware implementation of the graphical program, and wherein the programmable hardware element in the smart camera is operable to perform an image processing function on the image.
- 151. The smart camera of claim 150,
wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program.
- 152. The smart camera of claim 150,
wherein the graphical program is created by assembling a plurality of interconnected nodes which visually indicate functionality of the graphical program in response to user input.
- 153. The smart camera of claim 150, wherein the smart camera further comprises:
analog to digital conversion logic coupled to the input and to the programmable hardware element for performing analog to digital conversion logic on an acquired analog image to produce a digital image.
- 154. The smart camera of claim 150,
wherein the smart camera further includes timer/counter logic; and wherein the timer/counter logic performs one of timing/counting operations while the programmable hardware element in the smart camera executes to perform the image processing function on the image.
- 155. The smart camera of claim 150, wherein the programmable hardware element comprises a field programmable gate array (FPGA).
- 156. The smart camera of claim 150,
wherein the smart camera further includes a non-volatile memory coupled to the programmable hardware element; wherein the non-volatile memory is operable to store the hardware description; and wherein the non-volatile memory is operable to transfer the hardware description to the programmable hardware element to configure the programmable hardware element.
- 157. A method for configuring a smart camera to perform an image processing function, the method comprising:
coupling the smart camera to a computer system, wherein the smart camera comprises at least one functional unit, wherein the computer system stores a graphical program, wherein the graphical program implements the image processing function; and deploying the graphical program onto the functional unit in the smart camera to configure the functional unit; wherein after said deploying the functional unit is operable to implement the graphical program.
- 158. The method of claim 157, further comprising:
disconnecting the smart camera from the computer system after said deploying.
- 159. The method of claim 157, further comprising:
creating the graphical program prior to said deploying, wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program.
- 160. The method of claim 157,
wherein the functional unit is a processor and memory; wherein said deploying the graphical program onto the functional unit comprises transferring the graphical program to the memory of the functional unit; and wherein the processor in the smart camera is operable to execute the graphical program from the memory.
- 161. The method of claim 157,
wherein the functional unit is a processor and memory; wherein said deploying the graphical program onto the functional unit comprises:
generating an executable program based on the graphical program, wherein the executable program implements functionality of the graphical program; and transferring the executable program to the memory on the smart camera; and wherein the processor in the smart camera is operable to execute the executable program from the memory.
- 162. The method of claim 157,
wherein the functional unit is a programmable hardware element; wherein said deploying the graphical program onto the functional unit comprises:
downloading a hardware configuration onto the programmable hardware element in the smart camera to configure the programmable hardware element, wherein the hardware configuration corresponds to a hardware implementation of the graphical program; and wherein after said downloading the programmable hardware element implements a hardware implementation of the graphical program.
CONTINUATION DATA
[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 09/891,571 titled “System and Method for Configuring an Instrument to Perform Measurement Functions Utilizing Conversion of Graphical Programs into Hardware Implementations” filed on Jun. 25, 2001, whose inventors are Jeffrey L. Kodosky, Hugo Andrade, Brian Keith Odom, Cary Paul Butler, and Kevin L. Schultz,
[0002] which is a continuation-in-part of U.S. patent application Ser. No. 09/499,503 titled “System and Method for Configuring a Programmable Hardware Instrument to Perform Measurement Functions Utilizing Estimation of the Hardware Implementation and Management of Hardware Resources”, filed on Feb. 7, 2000, whose inventors are Jeffrey L. Kodosky, Hugo Andrade, Brian Keith Odom, Cary Paul Butler, and Andrew Mihal,
[0003] which is a continuation-in-part of U.S. patent application Ser. No. 08/912,427 titled “System and Method for Configuring an Instrument to Perform Measurement Functions Utilizing Conversion of Graphical Programs into Hardware Implementations”, filed on Aug. 18, 1997, whose inventors are Jeffrey L. Kodosky, Hugo Andrade, Brian Keith Odom and Cary Paul Butler, which is now U.S. Pat. No. 6,219,628.
Continuation in Parts (3)
|
Number |
Date |
Country |
Parent |
09891571 |
Jun 2001 |
US |
Child |
09949783 |
Sep 2001 |
US |
Parent |
09499503 |
Feb 2000 |
US |
Child |
09891571 |
Jun 2001 |
US |
Parent |
08912427 |
Aug 1997 |
US |
Child |
09499503 |
Feb 2000 |
US |