image和pic的区别dns是什么么?

opencv进展图像复原 - 图形/图像当前位置:& &&&opencv进展图像复原opencv进展图像复原&&网友分享于:&&浏览:0次opencv进行图像复原
  本篇是讲用opencv函数:inpaint来进行图像复原。
  void cvInpaint(const CvArr* src, const CvArr* inpaint_mask, CvArr* dst, double inpaintRange, int flags)
需要处理的原图像。
  inpaint_mask:图像掩码。(简单的说,就是表示src中需要被修复的图像位置)
处理后生产的复原图片。
  inpaintRange:修复算法取临近值的半径。
  flags:
选择Inpainting使用的复原算法:INPAINT_NS 或者 INPAINT_TELEA
#include &opencv2/core/core.hpp&
#include &opencv2/highgui/highgui.hpp&
#include &math.h&
#include &string.h&
#include &opencv/cv.h&
#include &stdio.h&
#include &opencv2/photo/photo.hpp&
int pic_info[4];
char pic_name[20];
Mat mat1, imageROI,
int width,
IplImage src, roi, dstI;
void on_mouse( int event, int x, int y, int flags, void* ustc){
if(event == CV_EVENT_LBUTTONDOWN){
pic_info[0] =
/*width1*/
pic_info[1] =
/*height1*/
pic_info[2] = 0;
/*width2*/
pic_info[3] = 0;
/*height2*/
if(flags == CV_EVENT_FLAG_LBUTTON){
pic_info[2] =
pic_info[3] =
cvZero(&roi);
cvZero(&dstI);
rectangle(imageROI, cvPoint(pic_info[0], pic_info[1]),cvPoint(pic_info[2], pic_info[3]),cvScalar(255,255,255), -1);
inpaint(mat1, imageROI, dst, 1, CV_INPAINT_TELEA);
imshow(&2&, imageROI);
imshow(&3&, dst);
int main(int agrc, char *argv[]){
memcpy(pic_name,argv[1], sizeof(argv[1]));
mat1 = cv::imread(argv[1]);
src = mat1;
width = mat1.
height = mat1.
imageROI = cv::Mat(width, height,CV_8UC1,cv::Scalar(0, 0, 0));
dst = cv::Mat(width, height,CV_8UC3,cv::Scalar(0, 0, 0));
roi = imageROI;
imshow(&1&, mat1);
cvSetMouseCallback(&1&, on_mouse, NULL);
cv::waitKey(0);
  代码中src为原图像,roi为图像掩码,dstI为结果图像。
也是利用鼠标的拖拽,在和src同样大小的ROI中生成白色矩形。该矩形在inpaint函数中就表示需要被修复的位置和大小,最后将修复后的结果图像dstI输出显示。
  原图像
  掩码图像
  结果图像
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 1234567891011 Copyright & &&版权所有scikit-image 和pil有什么区别_百度知道IOS开发——@2x、@3x图片等适应不同分辨率手机IOS开发——@2x、@3x图片等适应不同分辨率手机
围观1600次
编辑日期: 字体:
开发中,例如:nanshanImage.image=[UIImage imageNamed:@"index_pic.png"];在项目中还保存中index_pic@2x.png的图片,此图为了只适应960*640的分辨率手机注意:适应Iphone5的相关图片尺寸,也要加@2x.png。比如欢迎界面:Default-568h@2x.png;这个才能匹配上。而index_pic.png是适应640*320的手机,但是在代码中必须写成[UIImage imageNamed:@"index_pic.png"];这样系统自动会根据不同分辨率手机决定是否调用index_pic@2x.png还是index_pic.png,会自动根据分辨率来匹配用哪张图。可是如果写成[UIImage imageNamed:@"index_pic@2x.png"];那么系统无法自动判断,根据640*320分辨率来调用index_pic.png图片,系统只会将index_pic@2x.png这一张图当做某控件的图片,不会自动寻找匹配。因此,开发中[UIImage imageNamed:@"index_pic.png"];里面的图片都是用小分辨率格式名的图片,这样会自动适应大分辨率图片,直接调用。 UIImage类处理了所有需要加载高分辨率图片到应用中的工作。当创建一个新的image对象后,只要以同样的名称来同时请求图片的标准版和高分辨率版即可。例如,如果有两张图片文件,名为Button.png和Button@2x.png,只要用以下代码请求图片即可:
UIImage* anImage = [UIImage imageNamed:@"Button"];
在高分辨率显示屏下, imageNamed:, imageWithContentsOfFile:, 和initWithContentsOfFile: 方法自动查找具有@2x名称的图片(注意:如果@2x.png图片与.png图片必须放在项目同一包下,才能自动查找)。如果找到,则会加载该图片。如果没有提供给定图片的高分辨率版本,image对象仍会加载标准版的图片资源,并在绘画过程中将其缩放。如果有提供给定图片的高分辨率版本,但是没有标准版的图片,在标准版显示屏下不会加载高清的图片。说明:1,Create folder references for any added folders创建引入的是蓝色的文件夹结构,物理路径。 利用imageWithContentsOfFile获取图片,@2x.png与.png必须在同一蓝色目录下。2,Create groups for any added folders
导入文件的时候会是逻辑结构,而不是物理结构,目录结构图标如下,黄色的文件夹结构,和构建的Group是一样的,@2x.png与.png可在黄色不同的文件夹下(因为没有物理路径,引用的图片路径其实在同一路径下)。注意:xib中选择图片做背景时,也是一样的原理!也是选择不带@2x的,这样会自带根据分辨率匹配是否使用小图还是@2x大图!本文固定链接: 转载请注明:
作者:leehom本博客主要是把自己的经验记录于此,方便自己以后查阅及其他遇到类似问题的朋友参考。如果你有觉得不错的文章,可以注册会员发布文章或者邮箱发给我文章地址,谢谢!
如果觉得文章还不错,请麻烦点下广告,算是赞助下本站服务器费用,谢谢!
您可能还会对这些文章感兴趣!现在有一个表,(group,PicID,pic,music)类型分别是(int,int,image,image),我想把相同的group号_百度知道

我要回帖

 

随机推荐