图像处理代码举例(C++、MATLAB、OpenCV)
一、C中用数组存图像信息,下标索引:
pbTag[y*newWidth+x]
见:https://www.cnblogs.com/wxl845235800/p/11149853.html
HRESULT Imagejoint(PBYTE pbSrc,int iWidth,int iHeight,double dbZoom,PBYTE pbTag)
PBYTE pbSrc=NULL,pbTag=NULL;//源图、目标图
PBYTE pbImage=NULL;//load图像后存在这
PDWORD pdwImage=NULL;//用于保存图像
CString str = "src4.bmp";
LPCTSTR filename = (LPCTSTR)str;
cImage.Load(filename);
iWidth=cImage.GetWidth();
iHeight=cImage.GetHeight();
//分配源图内存
pbSrc = (PBYTE)malloc(iWidth*iHeight);
二、MATLAB用img(m,n),图像下标从1开始。
Matlab的下标是可以多行多列同时引用的,而像C语言等一次只能引用一个。
|
A(2:3,3:-1:1)表示引用数组中的2~3行,3~1列对应的元素 https://blog.csdn.net/sinat_26492471/article/details/52959511 |
ima=double(imread('lenna2.bmp'));
%原图
ima=rgb2gray(ima);
ima(:,:)=255;
见:https://www.cnblogs.com/wxl845235800/p/10898203.html
https://www.cnblogs.com/wxl845235800/p/7700887.html
三、OpenCV中:调用矩阵元素
(float)img.at<char>(m,n)
Mat img = imread("test3.png",0);
std::cout<<(float)img.at<uchar>(1,1)<< std::endl;
https://www.cnblogs.com/wxl845235800/p/9082025.html
Mat img = imread("test.png",0);//灰度图
M=img.rows;//行数、图像高度
N=img.cols;//列数、图像宽度
cv::Mat F= (cv::Mat_<int>(64,4) <<
Mat out(2*M,N,CV_8UC1,Scalar(0));
for(col=0;col<N;col++)
{
for(row=0;row<2*M;row++)
{
double tmp=(row-1)/M+1/(2*64);
int i=floor(tmp);
int phaseNum=floor((tmp-i)*64)+1;
if(i==0)
{
out.at<uchar>(row,col)=
(float)img.at<uchar>(1,col)*F.at<uchar>(phaseNum,1)+
(float)img.at<uchar>(1,col)*F.at<uchar>(phaseNum,2)+
(float)img.at<uchar>(2,col)*F.at<uchar>(phaseNum,3)+
(float)img.at<uchar>(3,col)*F.at<uchar>(phaseNum,4);
}
图像处理代码举例(C++、MATLAB、OpenCV)的更多相关文章
- Linux下c函数dlopen实现加载动态库so文件代码举例
dlopen()是一个强大的库函数.该函数将打开一个新库,并把它装入内存.该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的.这种机制使得在系统中添加或者删除一个模块时,都不需要重新编译了. ...
- C++ Iterator迭代器介绍及Iterator迭代器用法代码举例
C++ Iterator迭代器介绍 迭代器可被用来访问一个容器类的所包函的全部元素,其行为像一个指针.举一个例子,你可用一个迭代器来实现对vector容器中所含元素的遍历.有这么几种迭代器如下: 迭代 ...
- jQuery概述,代码举例及最新版下载
jQuery是一个快速的,小巧的,具有强大功能的JavaScript库. 它的基本功能包括: 1)访问和操作DOM元素 2)控制页面样式(可以兼容各种浏览器) 3)对页面事件的处理 4)大量插件在页面 ...
- 相机标定 matlab opencv ROS三种方法标定步骤(1)
一 . 理解摄像机模型,网上有很多讲解的十分详细,在这里我只是记录我的整合出来的资料和我的部分理解 计算机视觉领域中常见的三个坐标系:图像坐标系,相机坐标系,世界坐标系,实际上就是要用矩阵来表 示各个 ...
- SSL握手通信详解及linux下c/c++ SSL Socket代码举例
SSL握手通信详解及linux下c/c++ SSL Socket代码举例 摘自:http://www.169it.com/article/3215130236.html 分享到:8 发布时 ...
- SSL握手通信详解及linux下c/c++ SSL Socket代码举例(另附SSL双向认证客户端代码)
SSL握手通信详解及linux下c/c++ SSL Socket代码举例(另附SSL双向认证客户端代码) 摘自: https://blog.csdn.net/sjin_1314/article/det ...
- 常用正则表达式最强汇总(含Python代码举例讲解+爬虫实战)
大家好,我是辰哥~ 本文带大家学习正则表达式,并通过python代码举例讲解常用的正则表达式 最后实战爬取小说网页:重点在于爬取的网页通过正则表达式进行解析. 正则表达式语法 Python的re模块( ...
- Delphi基本图像处理代码
//浮雕procedure Emboss(SrcBmp,DestBmp:TBitmap;AzimuthChange:integer);overload;var i, j, Gray, Azimuth ...
- [ZT]图像处理库的比较:OpenCV,FreeImage,CImg,CxImage
1.对OpenCV 的印象:功能十分的强大,而且支持目前先进的图像处理技术,体系十分完善,操作手册很详细,手册首先给大家补计算机视觉的知识,几乎涵盖了近10年内的主流算法: 然后将图像格式和矩阵运算, ...
随机推荐
- asp.net core 读取Appsettings.json 配置文件
Appsettingsjson 配置定义实体在StartUp时读取配置信息修改你的Controller通过构造函数进入配置信息总结Appsettings.json 配置很明显这个配置文件就是一个jso ...
- 思考---(科研99% )VS (产品75%)
转目前人脸识别技术的挑战是什么? - 知乎 标签: | 发表时间:-- : | 作者: 出处:https://www.zhihu.com 也是放假太闲,上知乎来锻炼一下手指. 在回答题主的问题的时候, ...
- sort对二维字符数组排序
转载:sort对二维字符数组排序
- Kotlin属性揭秘与延迟初始化特性
在上一次https://www.cnblogs.com/webor2006/p/11210181.html学习了Kotlin的伴生对象,这次来学习属性相关的东东. 属性揭秘: 先声明一个属性: 没啥可 ...
- 2019牛客多校第三场 F.Planting Trees
题目链接 题目链接 题解 题面上面很明显的提示了需要严格\(O(n^3)\)的算法. 先考虑一个过不了的做法,枚举右下角的\((x,y)\),然后二分矩形面积,枚举其中一边,则复杂度是\(O(n^3 ...
- 01.Vue前端路由学习目标
路由的基本概念与原理 vue-router的基本使用 vue-router嵌套路由 vue-router动态路由匹配 vue-router命名路由 vue-router编程式导航 基于vue-rout ...
- flask 关于get、post的写法
一. get 方法获取入参方法 request.args.get 地址: 127.0.0.1:5000/test?arg1=1&arg2=2 如图: 二. pots方法获取入参方法类型比较多 ...
- vue中移动端自适应的postcss-plugin-px2rem插件
flexible 主要是用来响应式改变根元素的字体大小 安装命令 npm install lib-flexible --save 在main.js里面导入命令import 'lib-flexible' ...
- HTML锚点控制,跳转页面后定位到相应位置
想在点击更多的页面 跳转后 用户能看到的是新闻 不用再用scollbar拖下来到新闻页面 这时候就需要在链接上 做下处理 <a href="/article/list/page/ ...
- 多线程编程threading
操作系统能够调度和切换的最小单元实际上是线程.对于IO操作来说,多线程和多进程性能差别不大.有两种方法可以进行多线程编程. 1.使用多线程编程的两种方法 (1)直接实例化一个Thread对象 from ...