csharp通过dll调用opencv函数,图片作为参数
{
StartImageProcess();
try
{
BitmapData bitmapData = m_bitmap.LockBits(new Rectangle(0, 0, m_bitmap.Width, m_bitmap.Height),
ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
NativeMethods.DirectCopy(bitmapData.Scan0, bitmapData.Width, bitmapData.Height, bitmapData.Stride, m_bpp);
m_bitmap.UnlockBits(bitmapData);
}
catch (System.Exception)
{
}
EndImageProcess();
}
void DirectCopy(TiBitmapData& bitmap){
//获得基本参数
int width = bitmap.GetWidth();
int height = bitmap.GetHeight();
int stride = bitmap.GetStride();
int bpp = bitmap.GetBpp();
u8* bmpData = bitmap.GetBmpData();
int offset = stride - width * bpp;
Mat src = Mat::zeros(width,height,CV_8UC3);
//将bitmap的内容拷贝到src中
for(int i=0;i<src.rows;i++){
for(int j=0;j<src.cols;j++){
src.at<Vec3b>(i,j)[0]=(int)bmpData[TiBlue];
src.at<Vec3b>(i,j)[1]=(int)bmpData[TiGreen];
src.at<Vec3b>(i,j)[2]=(int)bmpData[TiRed];
bmpData += bpp;
}
bmpData += offset;
}
/OPENCV具体操作过程
Mat dst;
cvtColor(src,dst,COLOR_BGR2YCrCb);;
/OPENCV过程结束
bmpData = bitmap.GetBmpData();
for(int i=0;i<src.rows;i++){
for(int j=0;j<src.cols;j++){
bmpData[TiBlue]= dst.at<Vec3b>(i,j)[0];
bmpData[TiGreen]= dst.at<Vec3b>(i,j)[1];
bmpData[TiRed]= dst.at<Vec3b>(i,j)[2];
bmpData += bpp;
}
bmpData += offset;
}
}
}
转载于:https://www.cnblogs.com/jsxyhelu/p/4695613.html
csharp通过dll调用opencv函数,图片作为参数相关推荐
- opencv通过dll调用matlab函数,图片作为参数
[blog 项目实战派]opencv通过dll调用matlab函数,图片作为参数 前文介绍了如何"csharp通过dll调用opencv函数,图片作为参数 ...
- Java调用opencv实现图片去水印
opencv实现图片去水印案例 Java调用opencv实现图片去水印 环境安装配置 IDEA下开发配置 测试案例 Java调用opencv实现图片去水印 最近项目中遇到个需求,图片去水印下载,由于上 ...
- 基于Ubuntu系统,调用opencv在图片上显示数字和汉字
文章目录 一.汉字编码的介绍 1.汉字编码的发展过程 (1)汉字编码产生的原因 (2)常用的汉字编码 2.区位码 (1)产生原因 (2)概念简述 (3)区域分布情况 3.机内码 (1)基本概念 (2) ...
- python调用c函数传字符串参数_Python使用ctypes模块调用DLL函数之传递数值、指针与字符串参数...
在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...
- c语言中ntdll.dll,在Win32环境中从ntdll.dll调用Nt函数,C
我想从ntdll.dll调用一些Nt函数,我就是这样做的. 对于调用:NtTestAlert(),您需要典型的ntcall内核例程,可通过int 2Eh访问. (从这里我得到Nt功能http://un ...
- Ubuntu 下调用 opencv 在图片显示汉字和数字
目录 实验要求: 1 环境准备 1.1创建文件 实验要求: 学习理解汉字的机内码.区位码编码规则和字形数据存储格式.在Ubuntu下用C/C++(或python) 调用opencv库编程显示一张图片, ...
- Qt中调用OpenCV函数库时Crashed问题的解决。
这几天想在虚拟机上搭建Ubuntu的开发环境,包括了Matlab和QT(C++)的开发工具安装等,同时由于做图像处理,所以还必须要安装FFMPEG和OpenCV库.下面就讲讲我们安装时出现qt中调用O ...
- c++调用opencv实现图片叠加以及添加水印效果
前言 本篇文章参考了以下文章: https://blog.csdn.net/mars_xiaolei/article/details/78791133 https://answers.opencv.o ...
- python调用opencv放大图片
代码如下,简单易懂: import cv2# 横纵轴放大比例 fx = 2 fy = 2 img = cv2.imread('frame_000001.jpg') enlarge = cv2.resi ...
最新文章
- php 5/0,PHP 5.5.0 released.该怎么解决
- 一个函数打天下,einsum
- 在easyui中在同一列中合并相同连续值的jquery插件
- 通过OWA修改密码,提示输入的密码不符合最低安全要求
- 从Gradle自动将工件提升到Maven Central
- dax 筛选 包含某个字_筛选状态(ALL与REMOVEFILTERS)
- 微信企业号-根据code获取成员信息(过期code)
- 相对路径和绝对路径_linux系统中的绝对路径和相对路径
- Function:函数对象
- Redhat as 4 中创建 LVM 逻辑卷
- postman中从url中获取各参数值
- win10自带功能 进行磁盘分区
- 比较不错的MaciOS软件论坛
- 【SpringBoot+Mybatis】bootstrap/sematic UI与pagehelper实现分页
- 【STM32H750】玩转ART-Pi(二)——制作MDK的外部QSPI-FLASH烧录算法
- 再添荣誉!青软集团获评「山东省科技小巨人企业」称号
- 一键式统计6.0通透
- Serenity Screenplay模式
- [经验教程]手机上微信新消息不提示也不显示微信消息通知怎么办?
- IDEA 批量修改变量名、批量替换代码快捷键