# OpenCV dnn blob issues

**URL:** <https://forum.opencv.org/t/opencv-dnn-blob-issues/14520>\
**Category:** C++\
**Tags:** dnn\
**Created:** [September 12, 2023, 5:00am UTC](https://forum.opencv.org/t/opencv-dnn-blob-issues/14520 "2023-09-12T05:00:12Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![vimal\_william](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.opencv.org/vimal_william/32/7903_2.png) [@vimal\_william](https://forum.opencv.org/u/vimal_william)\
**Post date:** [September 12, 2023, 5:00am UTC](https://forum.opencv.org/t/opencv-dnn-blob-issues/14520/1 "2023-09-12T05:00:12Z")

</div>

Hi Community,  
I’m working on a project, where I’m trying to convert my image into openCV blob using dnn library of openCV, but I’m getting unusual blob from the function.

```auto
#include <opencv2/opencv.hpp>
#include <opencv2/dnn.hpp>

int main(){
    cv::Mat img = cv::imread("/home/vimal/Edge_ai/Vstream/includes/test.jpeg"); 

    if(img.channels() == 3)
        std::cout << "channels are good" << std::endl; 
    
    cv::Mat blob; 
    cv::dnn::blobFromImage(img, blob, 1./255., cv::Size(640, 640), cv::Scalar(), true, false);

    std::cout << blob.channels() << std::endl; 
    std::cout << blob.rows << std::endl; 
    std::cout << blob.cols << std::endl; 

    return 0;

}

```

but i’m getting the output as,

channels are good

1

-1

-1

kindly help me in this

---

<div class="post-metadata">

**Author:** ![berak](https://avatars.discourse-cdn.com/v4/letter/b/85f322/32.png) [@berak](https://forum.opencv.org/u/berak)\
**Post date:** [September 12, 2023, 6:37am UTC](https://forum.opencv.org/t/opencv-dnn-blob-issues/14520/2 "2023-09-12T06:37:29Z")

</div>

rows & cols only make sense for 2 dim Mats.  
blobs are multidimensional, and have those members set to -1

please use `dims' and `size` members (w/o braces !) to inspect:

```auto
std::cout << blob.dims << std::endl;
std::cout << blob.size << std::endl;

```

---

<div class="post-metadata">

**Author:** ![vimal\_william](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.opencv.org/vimal_william/32/7903_2.png) [@vimal\_william](https://forum.opencv.org/u/vimal_william)\
**Post date:** [September 12, 2023, 6:45am UTC](https://forum.opencv.org/t/opencv-dnn-blob-issues/14520/3 "2023-09-12T06:45:31Z")

</div>

@berak thanks a lot, it’s perfect now

---

<div class="post-metadata">

**Author:** ![vimal\_william](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.opencv.org/vimal_william/32/7903_2.png) [@vimal\_william](https://forum.opencv.org/u/vimal_william)\
**Post date:** [September 12, 2023, 8:01am UTC](https://forum.opencv.org/t/opencv-dnn-blob-issues/14520/4 "2023-09-12T08:01:48Z")

</div>

I’ve got another error followed by that

```auto

    cv::Mat modelInput = format2sq(img);

    cv::Mat blob;
    cv::dnn::blobFromImage(modelInput, blob, 1.0/255.0, cv::Size(640, 640), cv::Scalar(), true, false);
    net.setInput(blob);

    std::vector<cv::Mat> outputs;
    net.forward(outputs, net.getUnconnectedOutLayersNames());

    return blob;

```

C++ exception with description "OpenCV(4.8.0-dev) /home/vimal/opencv/modules/dnn/src/net.cpp:104: error: (-215:Assertion failed) !empty() in function ‘forward’  
" thrown in the test body.

can anyplease help me out here ? @berak

---

<div class="post-metadata">

**Author:** ![berak](https://avatars.discourse-cdn.com/v4/letter/b/85f322/32.png) [@berak](https://forum.opencv.org/u/berak)\
**Post date:** [September 12, 2023, 8:09am UTC](https://forum.opencv.org/t/opencv-dnn-blob-issues/14520/5 "2023-09-12T08:09:44Z")

</div>

your net is empty / invalid.

how (on earth …) did you construct that ?

you MUST read in a pretrained model to use the dnn’s forward()
