图像处理代码举例(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年内的主流算法: 然后将图像格式和矩阵运算, ...
 
随机推荐
- Debug与Release版本的区别
			
Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动.如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来.当 ...
 - 【Bug档案01】Spring Boot的控制器+thymeleaf模板 -使用中出现静态资源加载路径不当的问题 -解决时间:3h
			
总结 - thymeleaf的模板解析规则不清楚,或者忘了; - 出现bug时,瞎调试, 没有打开NETWORK 进行查看资源的加载情况 - 控制器中的其他代码,可以先注释掉,这样就可以迅速屏蔽掉其他 ...
 - python 判断返回值是否是字典
			
背景: 小鱼最近再调一个小工程时,需要对返回值进行处理(返回值如下),有的返回值 有data1 有的没有:需要做个判断,判断是否含有该key值 返回值: res1 = {"result&qu ...
 - LG4213 【模板】杜教筛(Sum)和 BZOJ4916 神犇和蒟蒻
			
P4213 [模板]杜教筛(Sum) 题目描述 给定一个正整数$N(N\le2^{31}-1)$ 求 $$ans_1=\sum_{i=1}^n\varphi(i)$$ $$ans_2=\sum_{i= ...
 - SQL SERVER使用 CROSS APPLY 与 OUTER APPLY 连接查询
			
概述 CROSS APPLY 与 OUTER APPLY 可以做到: 左表一条关联右表多条记录时,我需要控制右表的某一条或多条记录跟左表匹配的情况. 有两张表:Student(学生表)和 S ...
 - LightOJ - 1058 - Parallelogram Counting(数学,计算几何)
			
链接: https://vjudge.net/problem/LightOJ-1058 题意: There are n distinct points in the plane, given by t ...
 - 编程判断输入的字符是否为‘y’或‘Y’,若是,则输出‘yes’,否则输出‘no’
			
#include<stdio.h>void main(){ char ch; ch=getchar(); ch == 'y' || ch == 'Y' ? printf("yes ...
 - MySQL 优化之EXPLAIN详解(执行计划)
			
学习MySQL时我们都知道索引对于一个SQL的优化很重要,而EXPLAIN关键字在分析是否正确以及高效的增加了索引时起到关键性的作用. 这篇文章显示了如何调用“EXPLAIN”来获取关于查询执行计划的 ...
 - Kubernetes 学习3 kubeadm初始化k8s集群
			
一.k8s集群 1.k8s整体架构图 2.k8s网络架构图 二.基于kubeadm安装k8s步骤 1.master,nodes:安装kubelet,kubeadm,docker 2.master: k ...
 - learning java ATW ScrollPane
			
import java.awt.*; public class ScrollPaneTest { public static void main(String[] args) { var f = ne ...