# Camera streaming using OpenCV

The **gst-camera-opencv-resize.py** application uses OpenCV APIs to capture a camera frame from a live camera stream and then apply color conversion or re-size the frame. The re-sized output is displayed on the screen.

<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_2" data-name="Layer 2" xmlns="http://www.w3.org/2000/svg" width="1029.999999999996362" height="140" viewbox="0 0 1029.999999999996362 140" aria-label="../../_images/gst_camera_opencv_resize.svg">
  <g>
    <rect x=".500019073486328" y=".499778747558594" width="1029" height="139.00048828125" rx="7.5" ry="7.5" style="fill: #fafafa;"></rect>
    <path d="M1022.000019073486328.999992370605469c3.85986328125,0,7,3.14013671875,7,7v124c0,3.85986328125-3.14013671875,7-7,7H8.000019073486328c-3.85986328125,0-7-3.14013671875-7-7V7.999992370605469C1.000019073486328,4.140129089355469,4.140155792236328.999992370605469,8.000019073486328.999992370605469h1014M1022.000019073486328-.000007629394531H8.000019073486328C3.581752777099609-.000007629394531.000019073486328,3.581718444824219.000019073486328,7.999992370605469v124C.000019073486328,136.418266296386719,3.581752777099609,139.999992370605469,8.000019073486328,139.999992370605469h1014c4.41845703125,0,8-3.58172607421875,8-8V7.999992370605469C1030.000019073486328,3.581718444824219,1026.418476104736328-.000007629394531,1022.000019073486328-.000007629394531h0Z" style="fill: #d2d7e1;"></path>
  </g>
  <g>
    <g>
      <rect x="257.589522810971175" y="28.346575105810189" width="130" height="46.666666666667879" rx="4" ry="4" style="fill: #007884;"></rect>
      <rect x="411.200181352144682" y="28.346575105810189" width="130.000000000000909" height="46.666666666667879" rx="4" ry="4" style="fill: #007884;"></rect>
      <rect x="871.452866267889476" y="28.346575105810189" width="129.999999999996362" height="46.666666666667879" rx="3.999999999989086" ry="3.999999999989086" style="fill: #007884;"></rect>
      <rect x="103.960719437703119" y="28.346575105810189" width="130" height="46.666666666667879" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <text transform="translate(127.491962432861328 55.771877288818359)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtiqmmfsrc</tspan></text>
      <text transform="translate(289.218303680419922 55.770900726318359)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">capsfilter</tspan></text>
      <text transform="translate(454.356403350830078 55.771877288818359)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">queue</tspan></text>
      <rect x="564.771984263828926" y="28.346575105810189" width="130" height="46.666666666667879" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <text transform="translate(581.525516510009766 55.771877288818359)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtivtransform</tspan></text>
      <rect x="718.137060465760442" y="28.346575105810189" width="130" height="46.666666666667879" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(744.76567554473877 55.771877288818359)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">capsfilter</tspan></text>
      <text transform="translate(892.550929069519043 55.771877288818359)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">waylandsink</tspan></text>
      <g>
        <line x1="233.960712432861328" y1="51.679893493652344" x2="251.553058624267578" y2="51.679893493652344" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="250.385883331299738 55.668968200683594 257.294055938720703 51.679893493652344 250.385883331299738 47.690849304199219 250.385883331299738 55.668968200683594"></polygon>
      </g>
      <g>
        <line x1="387.589527130126953" y1="51.679893493652344" x2="405.181873321533203" y2="51.679893493652344" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="404.014667510986328 55.668968200683594 410.922870635986328 51.679893493652344 404.014667510986328 47.690849304199219 404.014667510986328 55.668968200683594"></polygon>
      </g>
      <g>
        <line x1="541.200153350830078" y1="51.679893493652344" x2="558.792560577392578" y2="51.679893493652344" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="557.625324249267578 55.668968200683594 564.533527374267578 51.679893493652344 557.625324249267578 47.690849304199219 557.625324249267578 55.668968200683594"></polygon>
      </g>
      <g>
        <line x1="694.771991729736328" y1="51.679893493652344" x2="712.364337921142578" y2="51.679893493652344" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="711.197162628173828 55.668968200683594 718.105304718017578 51.679893493652344 711.197162628173828 47.690849304199219 711.197162628173828 55.668968200683594"></polygon>
      </g>
      <g>
        <line x1="848.119525909423828" y1="51.679893493652344" x2="865.711872100830078" y2="51.679893493652344" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="864.544696807861328 55.668968200683594 871.452838897705078 51.679893493652344 864.544696807861328 47.690849304199219 864.544696807861328 55.668968200683594"></polygon>
      </g>
      <line x1="84.114081184834504" y1="51.679908439144128" x2="103.853211619617468" y2="51.679908439144128" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <path d="M62.874881107250076,29.71015011905547h-13.731098950055639l-6.865549475028274,8.238659370033929h-8.238659370031201c-3.033390442167729,0-5.492439580019891,2.459049137853071-5.492439580019891,5.492439580018981v24.715978110098149c0,3.033393061165043,2.459049137852162,5.492439580026257,5.492439580019891,5.492439580026257h43.939516640175498c3.033393061165043,0,5.492439580018981-2.459046518861214,5.492439580018981-5.492439580026257v-24.715978110098149c0-3.03339044216591-2.459046518853938-5.492439580018981-5.492439580018981-5.492439580018981h-8.238659370033929l-6.865549475026455-8.238659370033929Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <circle cx="56.009331632221347" cy="51.679908439145038" r="8.238659370033702" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></circle>
    </g>
    <g>
      <g>
        <text transform="translate(824.380664825439453 107.744926452636719)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Qualcomm </tspan></text>
        <rect x="804.129705200542958" y="95.653424894189811" width="16" height="16" rx="2.000000000000028" ry="2.000000000000028" style="fill: #2a2aea;"></rect>
      </g>
      <g>
        <text transform="translate(922.962512969970703 107.744926452636719)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Open source</tspan></text>
        <rect x="902.711486613396119" y="95.653424894189811" width="16" height="16" rx="2" ry="2" style="fill: #007884;"></rect>
      </g>
    </g>
  </g>
</svg>

**Figure : gst-camera-opencv-resize.py pipeline**

## Run the application on the target device

1. Ensure that you complete the [Prerequisites](https://docs.qualcomm.com/doc/80-80022-55/topic/prerequisites-for-python-sample-applications.html).
2. Run the application with input from a live camera.

gst-camera-opencv-resize.py --inwidth 1280 --inheight 720 --outwidth 640 --outheight 480
        Copy to clipboard

    The stream is displayed on the screen.

## Expected output

![../../_images/gst-camera-opencv-resize-py-expected-output.jpg](data:image/jpeg;base64,UklGRqAXAABXRUJQVlA4IJQXAACwtgCdASpwAvABPwGAuFYrKDIto3PI+kAgCWdtftu6UmA/jeOkmDn1qdcD9hM1z/g/P38iXat4fjX63m04ncf+RIYDi3S2qLv/Ph/gH+i0tNgAXy7QAi5T7kfAZxcNzbUh6MrlpOxCfVpAv5Eml89C5v6h4TpNFjMJtAG6at9fIR4/sDRVm127Co+HGuG9jvDlAMQQ+X/29Oa1lqoFSGuuXPULMDL8T/TSdroLyApdpDAHOHGnYXbj0BX9aFwKDv4Yt7nZ/vyOWXBsClbkP5Wm7Nc6xUDTI5SozoW8s/zRaexiLk8r67PjLqlP4FZroJbA4iMBP4M5RyKDak3VPCg75dKIw/AmUZjk0lD0RpAPwYKpg38Njj8DsHEzoWssjft5LPrDbGcO2TCQ7U35ALGVx2gqRVrBDZlhQCJTc+4p6i4z5suEPL/1CnDAcBAGHuOf2ZrS3Qkk8C1n3JXltvbFTY8PCXlRrTtZtnh3OCUyZPJOuWfaCHztWFp0HJ/DdzXujqBck/5VBFgdk7Vld3T65tvgFchwRaCfNTc+iOEw56u3WlUe3mSXlE5JjjbNbvDOzaGY1O4kRk7KX0vJ6oyolk8/pQChXq9i1b9iwQM4/qsjF81q8YYMOhE7i6SDjFv9+gOUDLF7oOgdPyuDENRS3ejRI1aFRr7RKozBXnYfF+b2DwIMnWWb470+217gxssqA9M60QfuafR4mx7Kto/XxDnftxz8KBcvSkDI0lOjR2/9EyAun0hGp158XJXBzs7RVgYBee+ka1g7LaXIa1mzpHjWCDws77oV7LxD6pKCXQlXojnG9tFTiODwbuYkzYS4Th3Q7YLqZl3btIVIElsmfUYSVnTeRcs1iodbDx1vIaNWLEP0UOts0/cbJPQ92JlAHO12ThQyikWConrldqDXUPbPP7Fhi1u+YHSVQbZ6fPLYvpn6r7Jd+w1YxRn2kGKowCp5rEAHm1Kl6K94fdvWatHADFDAsRSvClTfbtzT3YDpJx/28GvalgCM7Mb0aWaiyNPXZp0ytK9mXkNLu8bl7M1eUZiJguM211E/m2pFcygyBueUQgoExITzxzwGM4loTvB7C8kaLvgs7lw/0n5ZSRYqmfRNPAB4eFlc9ipEJ4Q0Fzjj9gvlJmTM4SNsezXSRJV9eAVQtAPXWWmSpQjX3/6WhqRAOgVHfqiLoX7V/L/AuusEUwryF5BwgeTR2NtsA5p+5Wo3KHH6iT3vFwKoad3m4janVD/OV0mxu+L7okZR71hZPzHOeLlGX+txl4zn1dA9PBsVDQF202xOP/DHpz2sQ0Nh3l1SilL31GOOvnrzqzOudc7utLI5xWaaWhIBCBCqvaGz6AEvu3Pueo5Nymx0NarWJ9qzAFna6wdHRMXS3XJOdc6Q6NtRTsWmh9MA3voJ8u94DVhVGx8l46XxD3TKxtvnaYdCtetETdygY5PZA37oGFDbbKPRvw47DiCASiBlglkJdQo0Li/ZnNEI0g5ItYB4Oi7UgAiyEzjaF6W9vnerrqqk8NlWIs6gVJzlz9hFYiMfgaWUqVo8A2yaGFRSjNxwwrsB3Pe5FAIUSDh6S4RiOwfLh4ZLvC6dFBMidyurtLnbQkcuMHW2P8M0jf5rNBKxx5wBjzeAyxlzD+KD6SQdLfcj+SBnOzfbf9pa/L+9iXwv/OfJV2JqxQrB5rO9pYKMMJv7W+pLaCz7mVGO6rwcuAbMM5tqKrKHmEbBPm4qsmIAqXg0lrv6vG0PqLC7nfqOIVYbBy07SEbJaKHwbw2VgOq8/HcK6fDeE8EDKNtyrCLCLqALCz5J5g4fxF2b1kZVQfytgORzd6FkJU8k6vOb0x4//LRHjswWsDBsM1M1GK9NsX1X/JMZD/RhzPyU2a4XLl1ROWCNUUPVxFVr3OlNrcuHlqbQjLi7wlt2JGM/zOHNfzxZ7z3FUbBq7mDV0QXs4f6DNnK+/AAA/tL+P5uVOs6zqQBMyAO7SjNghtAIJSDxD9xsGcxSPdXrtMl3vd6trMqPXfIVE2k+GfJv/Hju3+atfy2opr/XYoGzN+ZZ4UWmi2pR5VahVt745KxOJnNLapxAq9ASDzEUGyuGqVYBUlZfytDtG7mrUWwvarfL2QH6JsdcVSaM161Qsnu9s6bK27KVVEh0xxpSUoAwtEcoQZPOfE/0qi6ubl8UMt50ui/bT8hkdc96twTRjmEs64DR2Pj3NO4pqP7hgacRwK6FzxhCt84MXBvTC4q5H5SMrEK16vrM4P4+VylCywIQpYB3Q7m0dyP1Ym75dGLA6ogf59xJBoTFVR8tlDAumJkQ5cIc/grFMLJtEqgXa9Q6fD2K3Yy8VR+Sx4ttXSypRfKmxtIEirOR0XC0tiP76I/voj++h1u2aVTKmWIZslb41h5ts2yU3f17M05EquysSmysTIQZYucCXRZGDUPUSioBE2Vr1blGDHMCpwS39Dt6JWZMv80r/Hc5ZL/xiX+aRhBU+n5wTh26n/ErLzKlb4ulNiW0CIUaRRIyCuASZiPJniPHkjTHNzgJ3PpQx7JV5/Fj6jvpCpIfGAjogBITihMnF3LhjBhpaUUH22yyCEgpQZtgdpkrqPpThvR63Cz+TvNGe+D6TRtCuJ2JeF5A9ykLjwJfWfWPqdeRMJzbqXvhsenOn5Q5biCi8E6442G40akTcw6AqpBUXVFU7I7vMnqyRjnK6rOKJEAcmQeeJfnw0HXbtuIiHndIBOAIkr0rzZ1ntvazdKwpyHQ/Y+hamHXDJ4XEG4CpZaCNy4gKC5x3eTxqOU3Y26Y94yywFrSAlz+Ggs/HZdjd2t3mNXk0EQ5BLgva/PPF1pzLy3x7iNH4UKtQNH1bbpGY1rDoqz65x30yk5eu96q4RheF1iGx9RwbOkUTlJ2P805DJ52pAKWWbMxZVs/n+yZHJMCpjFzElUTbHCsK81Ow4t6QQLpC6j9V0lpreXkOiRwWH6RsGpglpFCwD0s37VCK65j+VdkkYWfcO93XcImfRXUYv5fIN3BMmNavENLIBz+KcAAAkTqBYDNfs9PIowWpDDEMlWXojS1wUoKqaF7w7App+1ywySHmOPtbbhUUOLWP05EURPc/Y8BNSQgWdmXDDy7U+ES9Dlbvh96zP54FzNJhC1nFocYYOFHxX1Hdn93tYseEQwVmstSzGtvpsscfzW7pZgDGTBuKg3wbcGZWmtqYkPgnBRxFhtx+RYDMUgqfKBj4+PbU4PJQPjENrYcLbxPOj3MoJP+GNgElZ9c1z9PNo01JMpTLqSWoNzYYT2kBGZsaNqEQr2RoyPcScBH2MNokTeiPxgPTQNKJDWLxxSR3PRNP8qle/f5zqD1PhAmX0jeGZZ/yki7PLG//aIOXXMb+YG8KuBapCCpZOCu1GkxV+0zCtAm/Q3vGdbaL6HbCpuAYSM8BSVuKXVPCOnZL3X+pjBI98AHw5Ts6OZOIKjhrQCGg84KItNgEpLYi3t47+oaARfQ914xFpR64nWvaADtlNLRa5XxuxtYzuR1/0Fhi+yCXlbWGYVvuMWpm1cWRJ2Bgw5ruwbAQDMZKzF65TlZrDjF1ErMLbjIYglLwFAEUoMUIGMTwBH8lQljYjarvQfB67VDtx0eBmHtJMbqGDaEEv776bm2sfX8o9LWCtDsRToG4OBqWA5NFzvlbyrUyl/1wNWoOPBMzKMphoOwiORs2HuIgLva5K0Q0BkvtOPuVT2r8pabUQBOYyvVRSVhJ+/E5kcY5XpG8TJ5zL3qZIzFslzInYsvRB5AdmyiCQ2sVXcCrRL0xY0e6x3+G1gFCm0lAnL/+D9Ok2otf7VgOjHDjnFqP0tE3Aifhjaaf8Fvya/lC7lLLZctqs/hipKGvpzc2BHiSBbCu2q70U6oudshtvz7sQezGqlNfdZ81KRfLRdjg4hNKXdCykYr2ZbFj/wcMQGPyBs4E5Pi/yeu6b/MeIUjbNBjtSczW27pL9k1JdCITBczmzvWtBDE3oIDOYiGF7HQ5xuBAW4fTqo/w/n3zw/9Mky/kqWndgQP36gzXPlI1THmaJ/pyzcwPOz3QDNRzFl6UR5kWsxMKJ4pvVHShdcZrOoJX2zDG/1y2cdsVMWYgpoKeGEg8XsDi3m7HRqDCmroFmVA+H6ZoJXyomyzwNTDlQFVxh+Sys+CehAgopOEdg65NRRCs6AtlsoUvdGg4WPW5U01o4jKLIheahhcvLQTIBYakPftUsfqpzvBV6nM0hgLMlDxKi+vNRgMak06iGHJca9HZWtCURKfA5P5eKxIV4iSXBGBkAuJ0ELbOmgiTO6AwxFNBdpkQHZIhmo/xI22VP3+idRJVJbcU3BijcPEJXoOPScAy+m2E1KFDYMdx2KC2UEwfUZ0OIRxtIGrPc9ubfqAs2ST5z6Wl/g8CUTDLlo9NGI45LccWeb1V+ZUqEnkHdy6KIGawlrelqzQ3FmD7W4pvFi+1f10S6itD7ExqzSP6jmaZCZq+zspU/nmc9FoW5pBWKvQgaCSvpz1spo/9nbeOF6l7hwda2PwnpcwOgvJ+UlwrBeh7WqmOatZ4XrxHCoU/jvIhkWHCucYPAdJ3qjtx/fy/5i+vJSM4f0r7JBcj6z2K/ZlLvzHdXn6TWPG1lq5viUYGsxLcBM5QwVohjd5RId7cgcwRNLS+vgpJ3jmMFLTCqq50sMoUDUNSf1E2jmof9pSeCAkyYZfcZF49BeJcvi0sKjPNd1Iz1bAY5Plt1vFSphMf27qwuxnSdbFMPoAPhMrQv7CI3+J1jUhmT1kgMNemTdRqNslNeZUxkAzDeyT+blzc4vU7lCJOMGxBalF9bO/Jn9rQIG7cFp1cDXuWgMG6uOwwzwG/qL4y5A9mavyzx6Ix97x3nQnAN9/3CkbnzBhK9vKv4rGRxqT0GfydhYAuySirHKfkodMiWGBlw1JbeKAT9t227U6FcPn+DTlmIqGw8siNrbPKmQdXpqXzGV+jSq3tnECcpgvV883lzTdT4zhYX4Vi5dioSRKl/ZqJuj9JOmdMqmbS+S3G/3xuNsmQxEa8iiHCIp37rFYfMoqPO5MgyTu5AjcCmsUVtbg7Bnl3mRLMJYsQrihMCzoyHsA4LyJ75DVFCRkmHA01iKPZ25dGsqtDJoMroCq6WFaj39z/9FzsWUDUrFRGNw7s1LLDE3NFzo0U5l0EPChjQgHw+XyS0Ie8rrJAJCaWnWyoqHUMoIZj8hgDFgQqc00uoIUUTnn3B4p70M2dro+SewObgcJqq/pco4vV9DuIjDFfvB6Z7IOc6uDh08qpeG52xWQbInWUjegAAC+pCzpE3Q0w4TLB6JiTPFYIiYvJm1H2LcOFeLcdtUDe18CMh+hIyirGoyUyCevn3dNh7/vaB+zBnf0VIzJl2FQpiHlvPQsGrKzjF2GImeAW48QNmKXfx7xkNdHtd6oTNaqo5r7sBYIgwjwCCp/I35XuLUr2BXWsL+pwfO3ZkhMIspnBpRNQ0ZMbcn/Bp7anupub4MX9XcyTIjeeC57tNgUNPZaXliEyvjxgiPrDQkJVs80+z3IuskbKX18NF01nXCRSw8NDTSLAD0X8JxP4rjSMGjS6wkEqtl1WlfPloGdXXK++u6RO4prBgOkEJklR6nJ5XZXxYxqXGAl7faskomcooYebYxletPPS4V4RcTvN4AQHL3tYPUdKUfLoS+Y+22N43C5zdZEpfhpsvDc8MngDcMrTG0BVPP52PNTw3EUtYp3QaCq+++qu5wnwROjaJH5etFYgbV8zCmxGheNZAoMdXMR72YZJZJMqQb/7xwwnTDYrcXAiRw44DoiDum6LWhhJL9a8YHJtVIpa718qcfBKeG2SOc5NTwk21i+eLDCr1wjrcwzdBvvbJVakMIuZQMNw84Hfa7YnCy+ejrjNYEB/mph4GfZOBerNJlU5fPXX/RM26LOTcmO6LBo5rIHF74EeuOyNPKGCKSMFqUdmQISA0poWnHEd8K6JWcsJy84wZTZjSIqw7DwRhOzoPO1dju1ePbGD3J16ijscfCCHxZg0HUoBuC/K9akaa1Vhn1mCPR4tMONZW8yiAeU5tm3s3uuQXekloi//P9gFuM4Xe37DBffixH1SkRxrqGGwljXLP3iDR5fuT5DqITIgT/NP4+jBvtUjEWw8GMTwrAF5R1ebiJywbhOoOOcy45QUA90DoHd7/w9tB+zwxsgte4JaQ5DsJLWpPMpPFOJAgRI3ZIJns+hU+lylWpfFL4V2pI9ChZ4LPIaTY8GM+QNP0Vx52PiscHME3OprvLi4z2zM63tZ+CIlVTjG5ZHJ7WzLb3sQ+CdUHCWhlRDxO7H6aAX5qdftqC/IOow2ucltKSAd7kQGvaOKcp13h/ikechc7fj0R+8pgua/oknmI153L3cK9vyojd3fetpd3+shqV4sm8tc+2i0djsCdgRxSfLp0L64xTHPhoLTEcWD3qyq+T+C6TX3SG62AbUp4F090liuWVe+RaLQS7ivs4sPVZjz7lumKYPhWXnhwQ8ah6FjxV9PDg/D2zRytyn+BIb7fkw8gLRwsJNxV9CbdkNo4INABE0sZ8/3dEoHGCmGkLYqoJl6FFjTCVrQtWAvhlf6fzRKSYrrDhVUYeyNDo8LbkV3Cz1RXgGtaQ+8I4SpJVpHZFA8Db0Ol2bEQOpuEcIGep7NYQis1yJamGKbMoy13MnBtLJ2HzzawkYxet4A8jAGWO3zFQ+aipVkVGXSNPaCnsfmdmayWxe83sUJTS7g466rwkYraxmMz9Tn0SfWfil6F3tov/q2pmF7dxBsljl937qodfmrb7hCWUPa+19eqLsl0+DqGBEBs3CrI4fqEj572nApquaiUaD1E3HFVV/umQ1gC4/GEPGJhD34V8PRWCSJdbNEtE58sA+SjxbcLdSpbgmaaAHItmLMJiQ8zE7gH4EEWszfdPFAeM6iSdMLChlX5LQDaCzN5rAyRj/WUzkx+QAg6p3zW+hi7Q7FqJ9m4pG+20W9eFdcfnaaGnvkHn0QMzoivITgXSyXBY4wmJN9MqjEbxnig6L+Q04L0SQLvewtplRZ7rd1JUysjaox+ANFLGz07+39x0qNqHyaDmcqc3E6UMoqTKzoKVKz5FtPDVrqSjnMXoY4hRc25lusbcK8cPVfzJqM7i82K+uVr+51qYerWFjuMHZnHDdl2PqpXnXZJukWppomtr5vxZuC/JVgTI9BchMYgRoFBug6BdCxVHqTSuJA3/ebRvbhMei5Ju2oo648wQ8exU03ZPtHHLBYhJgSRquBdxw/FFlosW13IVKlPcoR8LVC25kXnfidrttRnwhZ9M4i0SRIlrREXSl4Yg8WvRurqBrp9XoM1iOgc6uy3n1ug4ruuDDBuGni0PuZCPIPujJt5bU949QVkn0pbJ8NdhseGE4HLmhrFt4ARKbVtSsQu3gcx+2Zg/AZtX6RYNu9ctV8PmedpFTdPLLEz2K4dcXa49kpI8WKArNwnwPNIs5L3KVOBALPGhfynMmpHnEDwIUWTqDhM6jqVMiDh3j21j/DwYzc/N/VkTjr06YD13F98C6YlDHO08EnCbvZbP3sB/uwlxBHJHcAn4NWR/ExNuU69lbiArdbF/KkFDgdVEKMhrskwtXAbCs6P+qQ/GJ8J4a4xZzkuCQaSMb90BLBOvN7z4g0XlHbt6BE/5okk11ybSnL9lzYX+6Pr6ZGsp0p9Pp/g1SgyfW1FgpoFQwlqQtsK1cviFOykbnqrGlZTJ2ZL1YYWz+7KWFnUP7PSkQETyhRM8ULZp/Mtm9DE83DtGwfdFClKY3KiBKAXm4V6qYtCL9YpjtSa7W2pGNc8ekyBrOKwFSGRtPoqGg+LT5e4v0m6tm0/eTi6ky4imGmqQ5QrIGSALfkNKN6MLu72hL0C5U55tY6qweDot64DiqZmVAuT7GI9KyftOnpJfGW0vK07K4v3rQXN9P1iDUlHi8mTVnmNx4BghiK3Mxyx9uI6+wMqs/VrU65SpgEujwg/5Zr1H+vGYt+a7ArZvS9B1Z5ov+ceuGK2r6YY2zfNckcCZnQX//+o51YxLZZ3wca1WMAAAA=)

**Figure : Expected output for gst-camera-opencv-resize.py**

## Troubleshoot GTK backend failure in root mode

When you run a GTK-based application as the `root`, GTK may fail to initialize the backend because it cannot access the active display session from the root runtime context. To resolve this issue, explicitly export the active display session so that the root process can connect to the correct display and initialize the GTK backend successfully. For example, you can export the active display session environment variables before running the `adb root`.

> 
> 
> export XDG_RUNTIME_DIR=/run/user/1000
>     export WAYLAND_DISPLAY=wayland-1
>     Copy to clipboard

## Pipeline flow

The following table lists the plugins used to run the camera streaming with OpenCV pipeline:

| Plugin | Description |
| --- | --- |
| [qtiqmmfsrc](https://docs.qualcomm.com/doc/80-80022-50/topic/qtiqmmfsrc.html) | Captures the video stream and feeds it into the capsfilter. |
| capsfilter | Enforces constraints on the raw video data. |
| queue | Puts the video data in a queue till the buffer limit is met. |
| [qtivtransform](https://docs.qualcomm.com/doc/80-80022-50/topic/qtivtransform.html) | Transforms the video data.<br><br><br>After transformation, capsfilter is applied again. |
| [waylandsink](https://docs.qualcomm.com/doc/80-80022-50/topic/waylandsink.html) | Displays the video stream on the Wayland display. |

## Related information

[Single camera streaming](https://docs.qualcomm.com/doc/80-80022-55/topic/gst-camera-single-stream-example.html)

Last Published: May 17, 2026

[Previous Topic
Camera encoding](https://docs.qualcomm.com/bundle/publicresource/80-80022-55/topics/camera-encode.md) [Next Topic
Video transformation using OpenCV](https://docs.qualcomm.com/bundle/publicresource/80-80022-55/topics/video-playback-using-opencv.md)