小编grl*_*rll的帖子

c ++和opencv获取并设置像素颜色为Mat

我正在尝试将一些像素的新颜色值设置为cv :: Mat图像,我的代码如下:

    Mat image = img;
    for(int y=0;y<img.rows;y++)
    {
        for(int x=0;x<img.cols;x++)
        {
        Vec3b color = image.at<Vec3b>(Point(x,y));
        if(color[0] > 150 && color[1] > 150 && color[2] > 150)
        {
            color[0] = 0;
            color[1] = 0;
            color[2] = 0;
            cout << "Pixel >200 :" << x << "," << y << endl;
        }
        else
        {
            color.val[0] = 255;
            color.val[1] = 255;
            color.val[2] = 255;
        }
    }
    imwrite("../images/imgopti"+to_string(i)+".tiff",image);
Run Code Online (Sandbox Code Playgroud)

它似乎在输出中获得了良好的像素(使用cout),但是在输出图像中(使用imwrite),相关的像素不会被修改.我已经尝试过使用color.val [0] ..我仍然无法弄清楚为什么输出图像中的像素颜色不会改变.谢谢

c++ opencv pixel image-processing mat

37
推荐指数
3
解决办法
13万
查看次数

使用libvlc smem从视频中获取帧并将其转换为opencv Mat.(C++)

[部分答案更新]
这是我的代码:

void cbVideoPrerender(void *p_video_data, uint8_t **pp_pixel_buffer, int size) {
    // Locking
    imageMutex.lock();
    videoBuffer = (uint8_t *)malloc(size);
    *pp_pixel_buffer = videoBuffer;
}  
void cbVideoPostrender(void *p_video_data, uint8_t *p_pixel_buffer
      , int width, int height, int pixel_pitch, int size, int64_t pts) {
   // Unlocking
   imageMutex.unlock();
   Mat img = Mat(Size(width,height), CV_8UC3, p_pixel_buffer);
   //cvtColor(img,img,CV_RGB2BGR);
}
int main(int argc, char ** argv)
{
   libvlc_instance_t * inst;
   char smem_options[1000];
   sprintf(smem_options
      , "#transcode{vcodec=RV24}:smem{"
         "video-prerender-callback=%lld,"
         "video-postrender-callback=%lld,"
         "video-data=%lld,"
         "no-time-sync},"
      , (long long int)(intptr_t)(void*)&cbVideoPrerender
      , (long long int)(intptr_t)(void*)&cbVideoPostrender //This would normally be …
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing libvlc mat

7
推荐指数
1
解决办法
8732
查看次数

几种使用git的开发容器环境

我正在使用 vs-code devcontainer功能创建以下设置的容器化开发环境:

root_folder (main git repository)
|- .git
|- docker-compose.yml
|- @myapi-submodule (django python API)
  |- .devcontainer.json
|- @myclient-submodule (react js client)
  |- .devcontainer.json
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml我分别创建2个服务apiclient挂载它们相应的子模块文件夹。

然后我可以在 2 个单独的窗口中“打开容器中的文件夹...”,除了 git 之外,一切都运行良好。我需要能够进行更改,从容器提交更改分支...,但由于仅安装了子模块文件夹,所以我根本无法使用 git。

在这种情况下我有什么选择?如何在没有父文件夹的情况下从容器修改子模块?

git git-submodules docker docker-compose visual-studio-code

5
推荐指数
1
解决办法
740
查看次数