Hi juancarlostiquerangel
You need to run the jetson in a graphical environment, so you are able to view the cv2 frames when connecting the HDMI to it. Alternatively you can feed the frames directly to HDMI output of the device, but this would mean a lot more work and would require low level programming knowledge.

Thanks,
Jaka

    Hi jakaskerl Thanks for the answer. I think using the graphical environment is not the best option. Because, the frame won't always be centered. Having that in mind, I would like to send the frame through the HDMI port of the Jetson nano. Do you have any idea of how to do it ? I appreciate all your help.

    Kind regards,

    Juan Carlos.

      Hi juancarlostiquerangel
      I'm not knowledgeable enough in this area to give you advice, but:
      Writing to /dev/fb0 should access the hdmi interface when the device scans for output data.

      #include <fcntl.h>
      #include <linux/fb.h>
      #include <sys/mman.h>
      #include <sys/ioctl.h>
      #include <unistd.h>
      
      int main() {
          int fbfd = 0;
          struct fb_var_screeninfo vinfo;
          struct fb_fix_screeninfo finfo;
          long int screensize = 0;
          char *fbp = 0;
          int x = 0, y = 0;
          long int location = 0;
      
          // Open the file for reading and writing
          fbfd = open("/dev/fb0", O_RDWR);
          if (fbfd == -1) {
              // Handle errors
          }
      
          // Get fixed screen information
          if (ioctl(fbfd, FBIOGET_FSCREENINFO, &finfo) == -1) {
              // Handle errors
          }
      
          // Get variable screen information
          if (ioctl(fbfd, FBIOGET_VSCREENINFO, &vinfo) == -1) {
              // Handle errors
          }
      
          // Figure out the size of the screen in bytes
          screensize = vinfo.yres_virtual * finfo.line_length;
      
          // Map the device to memory
          fbp = (char *)mmap(0, screensize, PROT_READ | PROT_WRITE, MAP_SHARED, fbfd, 0);
          if ((intptr_t)fbp == -1) {
              // Handle errors
          }
      
          // Draw a pixel on the screen at (x, y)
          x = 100; y = 100;    // Where we are going to put the pixel
      
          // Calculate the pixel's location
          location = (x+vinfo.xoffset) * (vinfo.bits_per_pixel/8) +
                     (y+vinfo.yoffset) * finfo.line_length;
      
          if (vinfo.bits_per_pixel == 32) {
              *(fbp + location) = 100;        // Some blue
              *(fbp + location + 1) = 15+(x-100)/2;     // A little green
              *(fbp + location + 2) = 200-(y-100)/5;    // A lot of red
              *(fbp + location + 3) = 0;      // No transparency
          }
      
          // We'll unmap our memory and close the file
          munmap(fbp, screensize);
          close(fbfd);
      
          return 0;
      }

      Alternatively you can use a graphical environment and just set the window to fullscreen 😉

      Hope this helps.
      Jaka

        jakaskerl Thank you very much for your help. I will try your source code and if not I have to use the GUI of the jetson nano. And again Thank you. I appreciate it.