图像的像素是什么路径 形状 像素?

图形和图像的区别?
我的图书馆
图形和图像的区别?
图形和图像根本不是一个概念的:位图图像由像素点组合而成;色彩丰富、过渡自然;保存时计算机需记录每个像素点的位置和颜色,所以图像像素点越多(分辨率高),图像越清晰,文件就越大一般能直接通过照相、扫描、摄像得到图形都是位图图像缺点:体积一般较大;放大图形不能增加图形的点数,可以看到不光滑边缘和明显颗粒,质量不容易得到保证常用的位图软件有Photoshop,Cool3D,Painter,Firework等矢量图形由数学公式表达的线条所构成;线条非常光滑流畅,放大图形,其线条依然可以保持良好的光滑性及比例相似性,图形整体不变形;占用空间较小工程设计图、图表、插图经常以矢量图形曲线来表示
[转]&[转]&
喜欢该文的人也喜欢蜂鸟手机端
焦圈,为摄影而生
&&一百万像素是什么样的最好有具体说明找一张100万像素的图片就好了
如果你想知道的是100万像素传感器拍出的照片是什么样子的,那么你会很失望。早期数码相机100万像素级时代大约在2000年以前,CCD制作工艺落后,无论色彩、照片宽容度还是噪点控制都非常落后,与现在最低端的数码相机都没法抗衡。如果是手机摄像头,同样属于多年前的摄像头组件,也相当落后,或者是低端CMOS或CCD,效果都很差,甚至是30万像素插值获得的,效果没法与当今的高端手机(iphone、HTC和诺
器材讨论区
品牌讨论区
主题交流区
选择论坛版块
提出您的问题位图图像的最小单位是 1 个像素吗
帖子6&缘分币3 Y&阅读权限10&注册时间&
19:45 
位图图像的最小单位是 1 个像素吗
大家都知道位置图片的最小单位是1个像素,但在PS软件的处理过程中经常非整数的像素单位(如下图),请教这是怎么回事,它是基于什么机制的。
(23.02 KB)
[ 本帖最后由 周四爱晓晓 于
17:44 编辑 ]
偶不是杀手
帖子835&缘分币12121 Y&阅读权限100&注册时间&
只是粗略的知道一点点。不只是在图片处理软件中,在网页设计中有时候也会出现带小数的像素值。位图的最小单位就是1像素,显示设备是不可能显示小于1像素的点的,所以即使你看到的数值是小数,但真正显示出来反映到我们眼里也是整数的。至于是取整还是四舍五入,要看软件设计者的思路了。比如在网页设计中出现小数后,浏览器需要通过解析后呈现在眼前,那么不同的浏览器解析的方法也不一样,IE的话就是取整,比如10.99,会取10。但有的浏览器比如Firefox会四舍五入的去解析。PS中,如果要建立一个新画布,长宽是不允许有小数的,但输入的文字可以有小数,包括楼主说的在调节模糊半径的时候也允许出现小数,我个人认为是因为文字、模糊半径的计算过程是基于矢量的计算,矢量图形是可以带小数的,但你即使输入的是带小数的文字,但你实际看到的也是经过解析后的整数,至于PS里是取整解析还是四舍五入解析,那还是让高手来解答吧,本人水平有限只能理解到这个水平了。
感谢断老师
UID1153835&精华&积分3065&威望166 F&回复币684 B&警告0 次&贡献0 &金币86 个&学分22 点&性别男&来自火星&最后登录&
﹡--神秘の人
帖子662&缘分币1493 Y&阅读权限20&注册时间&
断水剑 的帖子
哇,楼上好厉害。终于看到这个帖子有人回复了。
UID1546835&精华&积分662&威望0 F&回复币217 B&警告0 次&贡献0 &金币0 个&学分0 点&性别男&来自河北省邢台&最后登录&
帖子165&缘分币55 Y&阅读权限10&注册时间&
ps是个计算机软件,其本质就是通过运算来实现某种效果,虽然像素最小值是1像素,但在羽化和模糊类的运算中以1像素为单位来运算,最后效果影响的像素却是远大于1个像素的,估计是为了让操作者能更精确细致的控制效果的范围才会在此类滤镜或工具里出现小数。
你可以试验一下,新建白背景,放大到3200倍,再在中间选一个像素填充黑色,然后高斯模糊看效果,从0.1-1.0每次加0.1,挨个试试,看看有什么不同,0.1没反应,0.2时影响范围最小就是周边上下左右四个像素受影响。若只能在整数范围调整,最小设1的话影响范围显然太大,所以引入小数我觉得是为了更精确的控制效果的范围。虽然在分辨率几千乘几千的图像上看没什么意义,但毕竟有微调比没微调要好,何况谁又能保证以后遇不到特殊情况呢?
如今苦逼的我成为了一名抄袭设计 ...
帖子3191&缘分币18480 Y&阅读权限100&注册时间&
位图最小应该是1像素
这个高斯模糊是从高斯公式演变来的,高斯半径是可以为小数的,而且小数最后也有变化,所以只要得到一个结果就好
帖子6&缘分币3 Y&阅读权限10&注册时间&
谢谢楼上各位热心回复,不知道是否有哪个理论教程涉及到这种运算方式的解析。如果能找到引进出处就完美了!
帖子165&缘分币55 Y&阅读权限10&注册时间&
引用:原帖由 槟榔之郞 于
11:16 发表
谢谢楼上各位热心回复,不知道是否有哪个理论教程涉及到这种运算方式的解析。如果能找到引进出处就完美了! 高斯模糊的运算就是二维高斯方程,你可以百度一下,如果你不是数学专业估计很难看懂,反正我是看不懂。ps有很多东西都是数学问题,例如自定义滤镜本质就是数学上的卷积,其不同数字的分布有着不同滤波效果。如今数字图像处理更离不开数学,软件的设计、算法都是以数学做支撑,我一个数学专业的同学现在就是从事图像处理工作,只不过是专业性很强的图像检错校正,如医药行业说明书校验。平常能接触到的还有马路摄像头拍车牌后会与数据库里车牌的数字对比确定车牌是多少,然后直接输入违章数据库里,这样就不用人工瞪着大眼一张一张查看照片并手动输入记录违章了。更先进的如美国军方正在研究的红外影像比对,如某人红外影像被美军卫星拍到过,若其想追踪他,直接卫星全球扫描红外影像图,若发现某目标与其数据库里此人的红外图一致则可锁定目标位置。数学确实是一切科学的基础,真心觉得很强大,楼主你要是想弄懂高斯模糊的问题可以把数学系本科和研究生的课程学一遍哈哈!
诚挚感谢你帮助版主回答问题分担版务
当前时区 GMT+8, 现在时间是像素对比两张图片相似度是否一样
#!C:/Python27
#coding=utf-8
import pytesseract
from pytesser import *
from PIL import Image,ImageEnhance,ImageFilter
import fnmatch
import re,time
import urllib, random
#import hashlib
def getGray(image_file):
for h in range(0,
image_file.size[1]):#h
for w in range(0, image_file.size[0]):#w
tmpls.append( image_file.getpixel((w,h))
return tmpls
def getAvg(ls):#获取平均灰度值
return sum(ls)/len(ls)
def getMH(a,b):#比较100个字符有几个字符相同
for i in range(0,len(a)):
if a[i]==b[i]:
dist=dist+1
return dist
def getImgHash(fne):
image_file = Image.open(fne) # 打开
image_file=image_file.resize((12, 12))#重置图片大小我12px X 12px
image_file=image_file.convert("L")#转256灰度图
Grayls=getGray(image_file)#灰度集合
avg=getAvg(Grayls)#灰度平均值
bitls=''#接收获取0或1
#除去变宽1px遍历像素
for h in range(1,
image_file.size[1]-1):#h
for w in range(1, image_file.size[0]-1):#w
if image_file.getpixel((w,h))&=avg:#像素的值比较平均值 大于记为1 小于记为0
bitls=bitls+'1'
bitls=bitls+'0'
return bitls
m2 = hashlib.md5()
m2.update(bitls)
print m2.hexdigest(),bitls
return m2.hexdigest()
a=getImgHash(".//testpic//001n.bmp")#图片地址自行替换
files = os.listdir(".//testpic")#图片文件夹地址自行替换
for file in files:
b=getImgHash(".//testpic//"+str(file))
compare=getMH(a,b)
print file,u'相似度',str(compare)+'%'
#!C:/Python27
#coding=utf-8
# 原作者发布在GitHub上的一些列图片对比的方法。有兴趣研究的可以访问链接如下:
# https://github.com/MashiMaroLjc/Learn-to-identify-similar-images
# coding : utf-8
from PIL import Image
def calculate(image1, image2):
g = image1.histogram()
s = image2.histogram()
assert len(g) == len(s), "error"
for index in range(0, len(g)):
if g[index] != s[index]:
data.append(1 - abs(g[index] - s[index]) / max(g[index], s[index]))
data.append(1)
return sum(data) / len(g)
def split_image(image, part_size):
pw, ph = part_size
w, h = image.size
sub_image_list = []
assert w % pw == h % ph == 0, "error"
for i in range(0, w, pw):
for j in range(0, h, ph):
sub_image = image.crop((i, j, i + pw, j + ph)).copy()
sub_image_list.append(sub_image)
return sub_image_list
def classfiy_histogram_with_split(image1, image2, size=(256, 256), part_size=(64, 64)):
'image1' 和 'image2' 都是Image 对象.
可以通过'Image.open(path)'进行创建。
'size' 重新将 image 对象的尺寸进行重置,默认大小为256 * 256 .
'part_size' 定义了分割图片的大小.默认大小为64*64 .
返回值是 'image1' 和 'image2'对比后的相似度,相似度越高,图片越接近,达到100.0说明图片完全相同。
img1 = image1.resize(size).convert("RGB")
sub_image1 = split_image(img1, part_size)
img2 = image2.resize(size).convert("RGB")
sub_image2 = split_image(img2, part_size)
sub_data = 0
for im1, im2 in zip(sub_image1, sub_image2):
sub_data += calculate(im1, im2)
x = size[0] / part_size[0]
y = size[1] / part_size[1]
pre = round((sub_data / (x * y)), 6)
print u"相似度为:",(pre * 100)
return pre * 100
if __name__ == '__main__':
image1 = Image.open(".//testpic//new.png")
image2 = Image.open(".//testpic//new.png")
classfiy_histogram_with_split(image1, image2)
方法三: 需要安装第三方包 ,针对window用户,切换到python安装目录下的script目录下,按住shift+右键,在此处打开cmd命令窗口输入命令:pip install requests 来安装request 模块,其他模块也一样pip install numpypip install matplotlib
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import cv2
from math import log
from PIL import Image
import datetime
import pywt
# 以下强行用Python宏定义变量
halfWindowSize=9
src1_path = './/testpic//new.png'
src2_path = './/testpic//new.png'
来自敬忠良,肖刚,李振华《图像融合——理论与分析》P85:基于像素清晰度的融合规则
1,用Laplace金字塔或者是小波变换,将图像分解成高频部分和低频部分两个图像矩阵
2,以某个像素点为中心开窗,该像素点的清晰度定义为窗口所有点((高频/低频)**2).sum()
3,目前感觉主要的问题在于低频
4,高频取清晰度图像中较大的那个图的高频图像像素点
5,算法优化后速度由原来的2min.44s.变成9s.305ms.
补充:书上建议开窗大小10*10,DWT取3层,Laplace金字塔取2层
def imgOpen(img_src1,img_src2):
apple=Image.open(img_src1).convert('L')
orange=Image.open(img_src2).convert('L')
appleArray=np.array(apple)
orangeArray=np.array(orange)
return appleArray,orangeArray
# 严格的变换尺寸
def _sameSize(img_std,img_cvt):
x,y=img_std.shape
pic_cvt=Image.fromarray(img_cvt)
pic_cvt.resize((x,y))
return np.array(pic_cvt)
# 小波变换的层数不能太高,Image模块的resize不能变换太小的矩阵,不相同大小的矩阵在计算对比度时会数组越界
def getWaveImg(apple,orange):
appleWave=pywt.wavedec2(apple,'haar',level=4)
orangeWave=pywt.wavedec2(orange,'haar',level=4)
lowApple=appleWave[0];lowOrange=orangeWave[0]
# 以下处理低频
lowAppleWeight,lowOrangeWeight = getVarianceWeight(lowApple,lowOrange)
lowFusion = lowAppleWeight*lowApple + lowOrangeWeight*lowOrange
# 以下处理高频
for hi in range(1,5):
waveRec=[]
for highApple,highOrange in zip(appleWave[hi],orangeWave[hi]):
highFusion = np.zeros(highApple.shape)
contrastApple = getContrastImg(lowApple,highApple)
contrastOrange = getContrastImg(lowOrange,highOrange)
row,col = highApple.shape
for i in xrange(row):
for j in xrange(col):
if contrastApple[i,j] & contrastOrange[i,j]:
highFusion[i,j] = highApple[i,j]
highFusion[i,j] = highOrange[i,j]
waveRec.append(highFusion)
recwave=(lowFusion,tuple(waveRec))
lowFusion=pywt.idwt2(recwave,'haar')
lowApple=lowFlowOrange=lowFusion
return lowFusion
# 求Laplace金字塔
def getLaplacePyr(img):
firstLevel=img.copy()
secondLevel=cv2.pyrDown(firstLevel)
lowFreq=cv2.pyrUp(secondLevel)
highFreq=cv2.subtract(firstLevel,_sameSize(firstLevel,lowFreq))
return lowFreq,highFreq
# 计算对比度,优化后不需要这个函数了,扔在这里看看公式就行
def _getContrastValue(highWin,lowWin):
row,col = highWin.shape
contrastValue = 0.00
for i in xrange(row):
for j in xrange(col):
contrastValue += (float(highWin[i,j])/lowWin[i,j])**2
return contrastValue
# 先求出每个点的(hi/lo)**2,再用numpy的sum(C语言库)求和
def getContrastImg(low,high):
row,col=low.shape
if low.shape!=high.shape:
low=_sameSize(high,low)
contrastImg=np.zeros((row,col))
contrastVal=(high/low)**2
for i in xrange(row):
for j in xrange(col):
up=i-halfWindowSize if i-halfWindowSize&0 else 0
down=i+halfWindowSize if i+halfWindowSize&row else row
left=j-halfWindowSize if j-halfWindowSize&0 else 0
right=j+halfWindowSize if j+halfWindowSize&col else col
contrastWindow=contrastVal[up:down,left:right]
contrastImg[i,j]=contrastWindow.sum()
return contrastImg
# 计算方差权重比
def getVarianceWeight(apple,orange):
appleMean,appleVar=cv2.meanStdDev(apple)
orangeMean,orangeVar=cv2.meanStdDev(orange)
appleWeight=float(appleVar)/(appleVar+orangeVar)
orangeWeight=float(orangeVar)/(appleVar+orangeVar)
return appleWeight,orangeWeight
# 函数返回融合后的图像矩阵
def getPyrFusion(apple,orange):
lowApple,highApple = getLaplacePyr(apple)
lowOrange,highOrange = getLaplacePyr(orange)
contrastApple = getContrastImg(lowApple,highApple)
contrastOrange = getContrastImg(lowOrange,highOrange)
row,col = lowApple.shape
highFusion = np.zeros((row,col))
lowFusion = np.zeros((row,col))
# 开始处理低频
# appleWeight,orangeWeight=getVarianceWeight(lowApple,lowOrange)
for i in xrange(row):
for j in xrange(col):
# lowFusion[i,j]=lowApple[i,j]*appleWeight+lowOrange[i,j]*orangeWeight
lowFusion[i,j] = lowApple[i,j] if lowApple[i,j]&lowOrange[i,j] else lowOrange[i,j]
# 开始处理高频
for i in xrange(row):
for j in xrange(col):
highFusion[i,j] = highApple[i,j] if contrastApple[i,j] & contrastOrange[i,j] else highOrange[i,j]
# 开始重建
fusionResult = cv2.add(highFusion,lowFusion)
return fusionResult
# 绘图函数
def getPlot(apple,orange,result):
plt.subplot(131)
plt.imshow(apple,cmap='gray')
plt.title('src1')
plt.axis('off')
plt.subplot(132)
plt.imshow(orange,cmap='gray')
plt.title('src2')
plt.axis('off')
plt.subplot(133)
plt.imshow(result,cmap='gray')
plt.title('result')
plt.axis('off')
plt.show()
# 画四张图的函数,为了方便同时比较
def cmpPlot(apple,orange,wave,pyr):
plt.subplot(221)
plt.imshow(apple,cmap='gray')
plt.title('SRC1')
plt.axis('off')
plt.subplot(222)
plt.imshow(orange,cmap='gray')
plt.title('SRC2')
plt.axis('off')
plt.subplot(223)
plt.imshow(wave,cmap='gray')
plt.title('WAVELET')
plt.axis('off')
plt.subplot(224)
plt.imshow(pyr,cmap='gray')
plt.title('LAPLACE PYR')
plt.axis('off')
plt.show()
def runTest(src1=src1_path,src2=src2_path,isplot=True):
apple,orange=imgOpen(src1,src2)
beginTime=datetime.datetime.now()
print(beginTime)
waveResult=getWaveImg(apple,orange)
pyrResult=getPyrFusion(apple,orange)
endTime=datetime.datetime.now()
print(endTime)
print('Runtime: '+str(endTime-beginTime))
if isplot:
cmpPlot(apple,orange,waveResult,pyrResult)
return waveResult,pyrResult
if __name__=='__main__':
方法四:最简单的对比方法
#!C:/Python27
#coding=utf-8
import pytesseract
from pytesser import *
from PIL import Image,ImageEnhance,ImageFilter
import fnmatch
import re,time
import urllib, random
onepng = ('.//testpic//001n.bmp')
twopng = ('.//testpic//001n.png')
def fixed_size():
"""按照固定尺寸处理图片"""
im1 = Image.open('.//testpic//001n.bmp')
im2 = Image.open('.//testpic//000n.bmp')
width, height = im1.size
diff = [(x, y) for x in xrange(width) for y in xrange(height) if im1.getpixel((x, y)) != im2.getpixel((x, y))]
print u"打印值:",len(diff)
fixed_size()
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 像素是什么形状 的文章

 

随机推荐